Первая команда сложения складывает значения из регистров С и Е. Результат 000, флаг переноса с устанавливается в единицу. Вторая команда сложения – ADC складывает содержимое В и D и прибавляет флаг значение флага переноса. Результат- 002. В результате выполнения программы по адресу 000200- младший байт суммы- 000, по адресу 000201- старший байт- 002.
Проверка: 0003778= 25510, 4018= 25710, 255+257= 512, 51210=10008.
Программа 3.5
Программа реализует вычитание двух 16-разрядных чисел.
Адрес |
Команда |
Мнемоника |
Комментарии |
||
000 |
001 |
LXI B |
Загрузка регистровой пары B |
||
001 |
000 |
B2 |
B2 -> (С) |
||
002 |
002 |
B3 |
B3 -> (B) |
||
003 |
021 |
LXI D |
Загрузка регистровой пары D |
||
004 |
001 |
B2 |
B2 -> (E) |
||
005 |
001 |
B3 |
B3 -> (D) |
||
006 |
171 |
MOV A, C |
Копирование значения из регистра С в А |
||
007 |
223 |
SUB E |
Вычитание из аккумулятора содержимого регистра E |
||
010 |
041 |
LXI H |
Загрузка адреса памяти |
||
011 |
200 |
B2 |
мл. байт адреса |
||
012 |
000 |
B3 |
ст. байт адреса |
||
013 |
167 |
MOV M, A |
Копирование содержимого аккумулятора в память |
||
014 |
170 |
MOV A, B |
Копирование значения из регистра B в А |
||
015 |
232 |
SBB D |
Вычитание с учетом заема |
||
016 |
043 |
INX H |
Увеличение содержимого регистровой пары H на 1 |
||
022 |
167 |
MOV M, A |
Запись результата в память |
||
023 |
166 |
HLT |
Останов |
||
Также как и в предыдущей программе, второе арифметическое действие выполняется с учетом флага с, сформированного при прошлом действие.
В результате выполнения программы по адресу 000200 записан младший байт разности- 377, по адресу 000201- старший – 000.
Проверка: 512-257= 25510=3778.
Программа 4
Обнуление заданной области памяти. Программа реализована в виде циклического алгоритма.
Адрес |
Команда |
Мнемоника |
Комментарии |
000 |
227 |
SUB A |
Обнуление аккумулятора |
001 |
041 |
LXI H |
Загрузка адреса памяти |
002 |
015 |
B2 |
мл. байт адреса |
003 |
000 |
B3 |
ст. байт адреса |
004 |
037 |
MVI E |
Загрузка регистра Е |
005 |
036 |
B2 |
Байт |
006 |
167 |
MOV M, A |
Копирование из А в память |
007 |
043 |
INX H |
Увеличение регистровой пары Н на 1 |
010 |
035 |
DCR E |
Уменьшение содержимого регистра Е на 1 |
011 |
302 |
JNZ |
Переход по условию Z=0 |
012 |
006 |
B2 |
Мл. байт адреса |
013 |
000 |
B3 |
Ст. байт адреса |
014 |
166 |
HLT |
Останов |
Результат выполнения:
Программа обнулит заданное в регистре E число ячеек памяти, начиная с адреса, указанного в регистровой паре HL.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.