Лабораторная работа №2
Запись и выполнение простых программ
Цель: Исследование и выполнение отдельных команд и простых программ; использование различных методов адресации в программах; запись программ.
Извлечь число из адреса памяти 0B00 и, инвертировать его и записать в адрес 0B01.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3A 000B |
LDA 0B00 |
Получить число |
0803 |
2F |
CMA |
Инвертировать число |
0804 |
32 010B |
STA 0B01 |
Записать по адресу 0B01 |
0807 |
CF |
RST 1 |
Прервать программу |
Результаты выполнения программы при замене команда по адресу 0B03 на нижеперечисленные:
Число, записанное |
Команда, записанная |
Число, записанное |
по адресу 0B00 |
поадресу 0B03 |
по адресу 0B01 |
CMA |
||
INR A |
||
DCR A |
||
ADD A |
||
ANA A |
||
ORA A |
||
CMP A |
||
DAA |
Использование косвенной адресации
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
21 000B |
LXIH, 0B00 |
Записать в регистры H,L 0B00 |
0803 |
7E |
MOV A, M |
Получить число из адреса H,L |
0804 |
2F |
CMA |
Инвертировать число в аккумуляторе |
0805 |
23 |
INX M |
Увеличить на 1 число в регистрах H,L |
0806 |
77 |
MOV M, A |
Записать число из аккумулятора |
0807 |
CF |
RST 1 |
Прервать выполнение программы |
Видоизмененная программа 8.2
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
21 000B |
LXIH, 0B00 |
Записать в регистры H,L 0B00 |
0803 |
7E |
MOV A, M |
Получить число из адреса H,L |
0804 |
2F |
CMA |
Инвертировать число в аккумуляторе |
0805 |
77 |
MOV M, A |
Записать число из аккумулятора |
0806 |
CF |
RST 1 |
Прервать выполнение программы |
Увеличить на 5 число, записанное по адресу 0B00, и записать результат по адресу 0B01.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3A 000B |
LDA 0B00 |
Получить число |
0803 |
С6 05 |
ADI 05 |
Прибавить к содержимому A число 5 |
0805 |
32 010B |
STA 0B01 |
Записать результат |
0808 |
CF |
RST 1 |
Прервать выполнение программы |
Сложить числа, записанные по адресам 0B00 и 0B0A, и записать результат по адресу 0B01.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3A 000B |
LDA 0B00 |
Получить число |
0803 |
21 A00B |
LXIH 0BA0 |
Записать в регистры H,L 0BA0 |
0806 |
86 |
ADD M |
Сложить числа |
0807 |
32 010B |
STA |
Записать результат |
080A |
CF |
RST 1 |
Прервать выполнение программы |
Сравнить числа в адресах 0B00 и 0B01. Записать большее из них в регистр B.
Адрес |
Машинный код |
Мнемокод |
Комментарий |
0800 |
3A 000B |
LDA 0B00 |
Получить число |
0803 |
47 |
MOV B, A |
Переслать число в регистр B |
0804 |
3A 010B |
LDA 0B01 |
Получить число |
0807 |
B8 |
CMP B |
Сравнить содержимое регистров A и B |
0808 |
DA 0C08 |
JC 080C |
Если B больше, то завершить. |
080B |
47 |
MOV B, A |
Переслать число в регистр B |
080C |
CF |
RST 1 |
Прервать выполнение программы |
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.