Программа 2.5.
Увеличение на 5 числа, записанного в ячейке памяти по адресу 0B00h и записи результата в ячейку памяти с адресом 0B01h.
; Программа 2.5.
;Входной параметр: M(0B00) - исходное число
;Выходной параметр: M(0B01) - результат инвертирования
.org 0800h ; Область программы
LDA 0B00h;пересылка числа из ячейки адресом в регистр А
ADI 05; (A)+5 выполнить сложение
STA 0B01h;пересылка числа из регистра А в ячейку 0B01
RST 7 ; вернуться в монитор
;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться ;командой RST 7.
.org 0B00h ;Область данных
.db 0E5h ;исходный байт
.db 00 ;результат
.end
Таблица №2 - Результат выполнения программы 2.5.
Значение числа в ячейке 0B00 |
Значение числа в ячейке 0B01 |
05 |
АA |
CD |
D2 |
FE |
03 |
Вывод: Число, записанное в ячейке памяти по адресу 0В00 увеличивается на 5 и записывается в ячейку памяти с адресом 0В01.
Программа 2.6.
0001 0000 ; Программа 2.6.
0002 0000 ;Входной параметр: M(0B00) - исходное число
0003 0000 ;Выходной параметр: M(0B01) - результат инвертирования
0004 0800 .org 0800h ; Область программы
0005 0800 3A 4C 04 LDA 0B00; поместить в A число из ячейки адресом 0BA0
0006 0803 21 B0 04 LXI H,0BA0; поместить число в HL число из ячейки с адресом 0BA0
0007 0806 86 ADD M; выполнить сложение (A)+M (HL)
0008 0807 32 01 0B STA 0B01h;пересылка из A в ячейку с адресом 0B01h
0009 080A DA 12 08 JC M0; переход к M,если CY=1
0010 080D 3E 00 MVI A,00;обнуление аккумулятора
0011 080F C3 14 08 JMP M1; переход к М 1, если условие не выполнено
0012 0812 3E 01 M0: MVI A,01 ; пересылка числа 01 в регистр А
0013 0814 32 02 0B M1: STA 0B02h; пересылка из A в ячейку с адресом 0B02
0014 0817 FF RST 7 ; вернуться в монитор
0015 0818 ;в микро-ЭВМ УМК-80 для возврата в монитор следует пользоваться ;командой RST 7.
0016 0B00 .org 0B00h;Область данных
0017 0B00 65 .db 0A1;исходный байт
0018 0B01 00 .db 00 ;результат
0019 0BA0 .org 0BA0h;Область данных
0020 0BA0 C3 .db 0C3h;исходный байт
0021 0BA1 00 .db 00 ;результат
0022 0BA2 .endtasm: Number of errors = 0
Таблица №3 - Результат выполнения видоизмененной программы 2.6.
Значение числа в ячейке 0B00 |
Значение числа в ячейке 0BA0 |
Значение числа в ячейке 0B01 |
Значение числа в регистре 01 (влияние на CY) |
0B |
B0 |
BB |
0 |
FE |
B5 |
B3 |
1 |
A1 |
C3 |
64 |
1 |
Вывод: результат сложения двух чисел, записанных в ячейках с адресами 0В00 и 0В0А, может быть двухбайтным числом, программа 2.6 обеспечивает размещение байтов результата в соседних ячейках памяти.