Форум программистов, компьютерный форум, киберфорум
Наши страницы
Assembler: i8080/8085/KP580
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Ckazka7380
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 3
1

Вычитание из пары DE пару HL. и массивы данных

07.04.2017, 08:58. Просмотров 1041. Ответов 5
Метки нет (Все метки)

Помогите решить , только начал знакомиться ассемблером и не могу понять вычитание из ПАРЫ регистров.

Уменьшить содержимое регистровой пары DЕ на содержимое регистровой пары НL. Числа в регистровые пары заносим программно. Результат поместить в регистровую пару DЕ.

Ну и тут ничего непонятно

Дан массив из 5 однобайтовых чисел расположенных последовательно в ячейках памяти. Разработать программу, которая заносит в регистр D количество всех элементов массива равные 18. (начало массива с адреса 0970Н)
спасибо!

Добавлено через 9 минут
Вот что получилось по первой программе:
Assembler
1
2
3
4
5
6
7
LXI D, 1234
1234
LXI H, 234
234
SBC DE,HL
CF
HLT     Конец программы
Правильно ли выполнил вычитание ?
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.04.2017, 08:58
Ответы с готовыми решениями:

Верно ли, что для любой пары точек из множества все оставшиеся точки лежат по одну сторону от прямой, проведённой через эту пару
Даны действительные числа x1,....x15, y1,....y15, которые рассматриваются как...

Пару вопросов по C#[строки и массивы]
Всем доброго времени суток. Я тут что-то застопорился, может кто подскажет....

Получить из пары чисел пару равных чисел за как можно меньшее число шагов с помощью двух заданных операций
Господа, нужна ваша помощь. Собственно пересказ задачи: Результатом...

Подскажите пару примеров решения задач на массивы и указатели
Подскажите пожалуйста пару задачек для решения на массивы и указатели! Искала...

Массивы. Определить номер последней пары соседних элементов с разными знаками
Дан массив 20 целых чисел. Элементы массива вводить с клавиатуры. Определить...

5
pyzhman
791 / 485 / 66
Регистрация: 15.05.2012
Сообщений: 2,744
07.04.2017, 10:49 2
Assembler
1
SBC DE,HL
Нет такой команды.
0
Ckazka7380
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 3
07.04.2017, 12:52  [ТС] 3
вроде правильно, но меня смущает что рег. пару 16бит , перенес в аккумулятор как я понял 8 бит, но и других вариантов с вычислением я не нашел. Что скажите ?
Assembler
1
2
3
4
5
6
7
адрес   команда коды    примечание
    LXI D,1234  11  Занесение двух байтов данных в пару регистров DE    
    LXI H,234   21  Занесение двух байтов данных в пару регистров HL    
    LDAX D  1A  Занесение из регистровой пары DE в накопитель
    SUB M   96  Уменьшить аккумулятор на содержимое регистровой пары НL. A <- A - HL
    STAX D  12  Заносим данные из аккумулятора в рег. пару DE
    HLT 76  Конец программы
0
Constantin Cat
2981 / 1115 / 376
Регистрация: 28.02.2015
Сообщений: 2,453
Завершенные тесты: 1
07.04.2017, 12:56 4
Ckazka7380,

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
model tiny
.code
org 100h
bbbb:
de  equ dx
hl  equ cx
h   equ ch
l   equ cl
a   equ al
;580
mov de,1234h
mov hl,234h
mov a,255
xor a,l
mov l,a
mov a,255
xor a,h
mov h,a
inc hl
add hl,de
mov de,hl
;
ret
end bbbb
проверялся на х86
1
Ckazka7380
0 / 0 / 0
Регистрация: 07.04.2017
Сообщений: 3
07.04.2017, 13:39  [ТС] 5
Спасибо за пример. но это видимо для другого микроконтроллера, мне нужно для KP580, а он половину не понимает команд из примера, да и мне нужно вычитание, а тут команд меньше чем с сложением.
И в том вся и проблема что нельзя так сделать (add hl,de mov de,hl) у меня как бы ПАРА регистров. да и вычитание работает только с накопителем!

Добавлено через 15 минут
это что делает, для чего :
Assembler
1
2
3
4
5
6
mov a,255
xor a,l
mov l,a
mov a,255
xor a,h
mov h,a
0
Constantin Cat
2981 / 1115 / 376
Регистрация: 28.02.2015
Сообщений: 2,453
Завершенные тесты: 1
07.04.2017, 14:15 6
Лучший ответ Сообщение было отмечено Ckazka7380 как решение

Решение

Ckazka7380,

Assembler
1
2
3
4
5
6
7
8
9
10
11
12
mov de,1234h;   LXI D,1234h
mov hl,234h;    LXI H,234h
mov a,255;  MVI A,-1
xor a,l;    XRA L
mov l,a;    MOV L,A
mov a,255;  MVI A,-1
xor a,h;    XRA H
mov h,a;    MOV H,A
inc hl;     INX H
add hl,de;  DAD D
push hl;    PUSH H
pop de;     POP D
А так понятно?

Добавлено через 18 минут
Цитата Сообщение от Ckazka7380 Посмотреть сообщение
это что делает, для чего
Процессор не умеет вычитать, только суммировать.
Поэтому была придумана математика с дополнительным кодом.


C FEDCBA98 76543210
0 00000000 00000101 = 5 = DE
0 00000000 00000011 = 3 = HL
;xor a,l
0 11111111 = А =-1
0 00000011 = L = 3
0 11111100
; с Н аналогично
inc hl
C FEDCBA98 76543210
0 11111111 11111100
0 11111111 11111101
;add hl,de
C FEDCBA98 76543210
0 11111111 11111101 = hl
0 00000000 00000101 = de
;+ =
1 00000000 00000010 = 2
2
07.04.2017, 14:15
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2017, 14:15

Одномерные массивы. Найти номера пары точек, расстояние между которыми наибольшее
Ребят, помогите пожалуйста. Нужен ПОЛНЫЙ КОД. Вот задача: Даны координаты n...

Массивы. Найти все пары чисел, для которых их сумма равна их произведению
среди чисел 1&lt;n&lt;100 найти все пары чисел ,для которых их сумма равнаих...

Вычитание данных в столбце
Добрый день. У меня такой вопрос. Есть 2 таблицы, 1-ая отвечает за купленный...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru