- •1.2. Составили программу обмена данными между регистрами a и c с применением регистра m(0820) (Таблица 2)
- •1.3. Записали последовательно элементы массива в регистры e, d, l, h. Исходный массив: 0a00 (0516), 0a01 (0216), 0a02 (0716), 0a03 (0116) (Таблица 3).
- •1.5. Составили программу обмена данными между двумя ячейками памяти 0830 (7816) и 0831 (e316) (Таблица 5).
- •1.6. Составить программу обмена данными между ячейкой памяти 0820 (7816) и регистром d. Для промежуточного хранения данных использовали регистр m(0840) (Таблица 6).
- •3. Составили программу с предложенной блок – схемой, проверить корректность её работы (Таблица 8)
- •4. Для исследования команд jmp addr, call addr, rz addr, nop и hlt (Таблицы 9).
- •4.2. Исследовали команды управления pchl и jz addr.
- •6. Разработали программу деления двух однобайтных чисел с раздельной записью целого и остатка от деления (таблица 12).
4.2. Исследовали команды управления pchl и jz addr.
Таблица 10
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0850 |
21 5A 08 |
LXI H |
085A |
Записали в регистровую пару (HL) число 085A |
0853 |
00 |
NOP |
|
|
0854 |
00 |
NOP |
|
|
0855 |
E9 |
PCHL |
|
Содержимое регистровой пары (HL) записали в счетчик команд (PC) |
0856 |
00 |
NOP |
|
|
0857 |
00 |
NOP |
|
|
0858 |
00 |
NOP |
|
|
0859 |
76 |
HLT |
|
Останов |
085A |
21 00 00 |
LXI H |
0000 |
Записали в регистровую пару (HL) число 0000 |
085D |
4A |
MOV C,D |
|
Содержимое регистра D переслали в регистр C |
085E |
06 00 |
MVI B |
00 |
Записали в регистр B число 00 |
0860 |
7B |
MOV A,E |
|
Содержимое регистра E переслали в аккумулятор |
0861 |
A7 |
ANA A |
|
Логически умножили содержимое аккумулятора и аккумулятора B результат записали в аккумулятор |
Окончание таблицы 10
0862 |
CA 56 08 |
JZ |
0856 |
Выполнить переход на ячейку памяти М(0856), если признак Z=1 |
0865 |
09 |
DAD B |
|
Сложили содержимое регистровой пары (HL) и регистровой пары (BC) Результат поместили в (HL) |
0866 |
1D |
DCR E |
|
Декрементировали содержимое регистра E |
0867 |
C3 60 08 |
JMP |
0860 |
Выполнить переход на ячейку памяти М(0860) |
5. Исследование команд работы со стеком.
5.1. Исследовали команды работы со стеком PUSH H, POP H, XTHL, SPHL (Таблица 11).
Таблица 11
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0850 |
21 57 08 |
LXI H |
0857 |
Записали в регистровую пару (HL) число 0857 |
0853 |
E9 |
PCHL |
|
Содержимое регистровой пары (HL) записали в счетчик команд (PC) |
0854 |
00 |
NOP |
|
|
0855 |
00 |
NOP |
|
|
0856 |
76 |
HLT |
|
Останов |
0857 |
21 90 08 |
LXI H |
0890 |
Записали в регистровую пару (HL) число 0890 |
085A |
F9 |
SPHL |
|
Содержимое регистровой пары (HL) записали в стек (SP) |
085B |
00 |
NOP |
|
|
085C |
4A |
MOV C,D |
|
Содержимое регистра D переслали в регистр C |
085D |
06 00 |
MVI B |
00 |
Записали в регистр B число 00 |
085F |
21 00 00 |
LXI H |
0000 |
Записали в регистровую пару (HL) число 0000 |
0862 |
E3 |
XTHL |
|
Поменяли местами содержимое регистровой пары (HL) с содержимым стека |
0863 |
21 00 00 |
LXI H |
0000 |
Записали в регистровую пару (HL) число 0000 |
0866 |
E1 |
POP H |
|
Выгрузили данные из стека в регистры H и L |
Окончание таблицы 11
0867 |
7B |
MOV A,E |
|
Содержимое регистра E переслали в аккумулятор |
0868 |
A7 |
ANA A |
|
Логически умножили содержимое аккумулятора и аккумулятора, результат записали в аккумулятор |
0869 |
CA 54 08 |
JZ |
0854 |
Выполнить переход на ячейку памяти М(0854), если признак Z=1 |
086C |
09 |
DAD B |
|
Сложили содержимое регистровой пары (HL) и регистровой пары (BC) Результат поместили в (HL) |
086D |
1D |
DCR E |
|
Декрементировали содержимое регистра E |
086E |
E5 |
PUSH H |
|
Загрузили содержимое регистров H и L в стек |
086F |
C3 66 08 |
JMP |
0866 |
Выполнили переход на ячейку памяти М(0866) |