- •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).
1.5. Составили программу обмена данными между двумя ячейками памяти 0830 (7816) и 0831 (e316) (Таблица 5).
Таблица 5
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
3A 30 08 |
LDA |
0830 |
Содержимое ячейки памяти М(0830) переслали в аккумулятор |
0803 |
47 |
MOV B,A |
|
Содержимое аккумулятора переслали в регистр B |
0804 |
3A 31 08 |
LDA |
0831 |
Содержимое ячейки памяти М(0831) переслали в аккумулятор |
Окончание таблицы 5
0807 |
32 30 08 |
STA |
0830 |
Содержимое аккумулятора переслали в ячейку памяти М(0830) |
080A |
78 |
MOV A,B |
|
Содержимое регистра B переслали в аккумулятор |
080B |
32 31 08 |
STA |
0831 |
Содержимое аккумулятора переслали в ячейку памяти М(0831) |
080E |
FF |
RST 7 |
|
Прервали выполнение команды |
1.6. Составить программу обмена данными между ячейкой памяти 0820 (7816) и регистром d. Для промежуточного хранения данных использовали регистр m(0840) (Таблица 6).
Таблица 6
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 40 08 |
LXI H |
0840 |
Записали в регистровую пару (HL) число 0840 |
0803 |
01 20 08 |
LXI B |
0820 |
Записали в регистровую пару (BC) число 0820 |
0806 |
0A |
LDAX B |
|
Содержимое ячейки памяти М(0820) переслали в аккумулятор |
0807 |
77 |
MOV M,A |
0840 |
Содержимое аккумулятора переслали в ячейку памяти M(0840) |
0808 |
7A |
MOV A,D |
|
Содержимое регистра D переслали в аккумулятор |
0809 |
02 |
STAX B |
0820 |
Содержимое аккумулятора переслали в ячейку памяти М(0820) |
080A |
56 |
MOV D,M |
|
Содержимое ячейки памяти М(0840) переслали в регистр D |
080B |
FF |
RST 7 |
|
Прервали выполнение команды |
2. Исследование команд обмена данными со стеком.
2.1. Организовали стековую область памяти, начиная с ячейки 0820. Поменяли местами содержимое регистровых пар BC и DE, используя команды обмена данными со стеком, предварительно заполнив регистры данными: B=1216, C=3416, D=AB16, E=CD16 (Таблица 7)
Таблица 7
Адрес |
Машинный код |
Мнемоника команды |
Операнд |
Комментарий |
0800 |
21 20 08 |
LXI H |
0820 |
Записали в регистровую пару (HL) число 0820 |
0803 |
F9 |
SPHL |
|
Содержимое регистровой пары (HL) записали в стек (SP) |
0804 |
C5 |
PUSH B |
|
Загрузили содержимое регистров B и C в стек |
0805 |
D5 |
PUSH D |
|
Загрузили содержимое регистров D и E в стек |
0806 |
C1 |
POP B |
|
Выгрузили данные из стека в регистры B и C |
0807 |
D1 |
POP D |
|
Выгрузили данные из стека в регистры D и E |
0808 |
FF |
RST 7 |
|
Прервали выполнение команды |