Адрес |
Маш. код |
Мнемоника |
Комментарий |
0800 |
21 |
LXI H, 0B00 |
; Записать в рег. H, L адрес 0В00 |
0801 |
00 |
; Сначала младший байт 00 |
|
0802 |
0В |
; Затем старший байт 0В |
|
0803 |
7E |
MOV A, M |
; Переслать в аккумулятор число из адреса, указанного в регистровой паре Н |
0804 |
2F |
CMA |
; Инверсия числа в аккумуляторе |
0805 |
23 |
INX M |
; Увеличить на 1 число в регистровой паре H, L |
0806 |
77 |
MOV M, A |
; Записать число из аккумулятора по адресу, который содержится в регистровой паре H, L |
0807 |
CF |
RST1 |
; Прервать выполнение программы |
При выполнении программы табл. 2 следует воспользоваться указаниями к выполнению программы п. 5.
7. Заменить в программе табл. 2 команду по адресу 0804 (СМА) последовательно на команды из табл. 3, а результат вычислений представить в виде таблицы, содержащей графы: число по адресу 0В00, команда по адресу 0804, число по адресу 0В01.
Таблица 3
Маш. кодш. код |
Мнемоника |
Содержание команды |
ЗС |
INR А |
(А)←(А) + 1; Инкремент аккумулятора |
3D |
DCR А |
(А) ← (А) - 1; Декремент аккумулятора |
87 |
ADD ADD A |
(А) ← (А) + (А); Арифметическое сложение |
А7 |
ANA A |
(А) ← (A) AND (A); Логическое умножение |
В7 |
ORA А |
(А) ← (A) OR (A); Логическое сложение |
BF |
CMP A |
(А) ← (А) - (А); Сравнение |
8. Исследовать программу сложения массива однобайтных чисел с получением двухбайтного результата. Ввести в учебную микроЭВМ программу сложения (табл. 4).
Ввести в память микроЭВМ последовательность из трех чисел: А5; В6; С0. Начальный адрес массива 0В00. Младший байт результата получить в ячейке 0В05.
Старший байт результата - в регистре С (счетчик переполнения). При этом необходимо обратить внимание на распределение РОН: регистр В – счетчик слагаемых,регистр С – счетчик переносов.
Таблица 4 |
||||
Адрес |
Маш. код код |
Метка |
Мнемоника |
Комментарий |
0800 0801 0802 |
21 00 0В |
ADDN: |
LXI Н, 0В00 |
; Занести в регистровую пару Н, L адрес первого слагаемого |
0803 0804 |
06 03 |
MVI B, 03 |
; Количество слагаемых в регистре В |
|
0805 0806 0807 |
11 05 0В |
LXI D, 0B05 |
; Адрес результата (младший байт) в регистровой паре D, Е |
|
0808 |
AF |
XRA А |
; Обнуление аккумулятора; сброс флагов |
|
0809 |
4F |
MOV С, А |
; Обнуление счетчика переносов |
|
080А |
86 |
CNT: |
ADD M |
; Сложение содержимого peг. А с 1-м слагаемым |
080В 080C080D |
D2 0F 08 |
JNC TRM |
;Если нет переноса, идти на TRM |
|
080Е |
0С |
INR С |
; Инкремент счетчика переполнения |
|
080F |
23 |
TRM: |
INХ Н |
; Адрес следующего слагаемого |
0810 |
05 |
DCR В |
; Счет слагаемых |
|
0811 0812 0813 |
С2 0А 08 |
JNZ CNT |
; Если В≠0, то идти на CNT |
|
0814 |
12 |
STAX D |
; Мл. байт результата в ячейке 0В05 |
|
0815 |
CF |
RST1 |
; Прервать выполнение программы |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.