Команды сложения 8-разрядных чисел
ADD ri – сложение с содержимым регистра: A, B, C, D, E, H или L;
ADD M – сложение с содержимым ячейки памяти по адресу HL;
ADI <B2> – сложение с непосредственным числом, B2 – второй байт;
ADC ri – сложение с содержимым регистров A, B, C, D, E, H или L плюс бит переноса C;
ADC M – сложение с содержимым ячейки памяти по адресу HL плюс бит переноса C;
ACI <B2> – сложение с непосредственным числом (B2 – второй байт) плюс бит переноса С.
2.1 Записать в память, начиная с адреса 0800H, коды программы
(таблица 22), реализующей операцию:
A ← (A) + (B) + (M) + 1.
2.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 23, и проверить полученные результаты (результат операции в рег. A, биты признаков в рег. F):
СТ0800 0807ВП.
Задание 1:
1 Написать и выполнить программу, реализующую операцию C ← (D) + (E), и заполнить таблицу 24. До выполнения программы вручную определить и записать в отчет ожидаемый результат операции.
Таблица 22 – Контрольная программа сложения 8 - разрядных чисел
Адрес | Команда | Операнд | Машинный код | Комментарий |
ADD | B | ; A ← (A) + (B) | ||
LXI | H, 0900H | 21 00 09 | ; Загр. HL=0900H, адр. M | |
ADD | M | ; A ← (A) + (M) по адр. HL | ||
ADI | 01H | C6 01 | ; A ← (A) + 1 | |
HLT | ;останов |
Таблица 23 – Исходные данные для контрольной программы сложения 8 - разрядных чисел
Вариант | |||||
(A) – исх. | F0 | FF | |||
(B) | 0E | ||||
(M) | |||||
(A) – рез. | FF | ||||
(F) |
Таблица 24 – Исходные данные для проверочной программы сложения 8 - разрядных чисел и результаты выполнения
Вариант | |||||
(D) | A0 | FF | C7 | AA | |
(E) | |||||
(C) | |||||
(F) |
Проверочную программу сложения (с учетом загрузки данных) записать в таблицу, аналогичную по форме таблице 22. Начальный адрес проверочной программы 0A00H.
2 Полученный результат записать в отчет и сравнить с ожидаемым. Преобразовать в двоичный код и проанализировать содержимое регистра F.
Команды вычитания 8-разрядных чисел
SUB ri – вычитание содержимого регистра: A, B, C, D, E, H или L;
SUB M – вычитание содержимого ячейки памяти по адресу HL;
SUI <B2> – вычитание непосредственного числа, B2 – второй байт;
SBB ri – вычитание содержимого регистров A, B, C, D, E, H или L минус бит переноса C;
SBB M – вычитание содержимого ячейки памяти по адресу HL минус бит переноса С;
SBI <B2> – вычитание непосредственного числа (B2 – второй байт) минус бит переноса C.
3.1 Записать в память, начиная с адреса 0810H, коды программы
(таблица 25), реализующей операцию:
A ← (A) – (B) – (M) – 1.
Таблица 25 – Контрольная программа вычитания 8 - разрядных чисел
Адрес | Команда | Операнд | Машинный код | Комментарий |
SUB | B | ; A ← (A) – (B) | ||
LXI | H, 0900H | 21 00 09 | ; Загр. HL=0900H, адр. M | |
SUB | M | ; A ← (A) – (M) по адр. HL | ||
SBI | 01H | DE 01 | ; A ← (A) – 1 | |
HLT | ;останов |
3.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 26, и проверить полученные результаты:
СТ0810 0817ВП.
Таблица 26 – Исходные данные для контрольной программы вычитания 8 - разрядных чисел и результаты выполнения
Вариант | |||||
(A) – исх. | FF | ||||
(B) | FF | ||||
(M) | |||||
(A) – рез. | FC | FF | FF | ||
(F) |
Задание 2:
1 Написать и выполнить программу, реализующую операцию
C ← (D) – (E) – 10H, и заполнить таблицу 27. До выполнения программы
вручную определить и записать в отчет ожидаемый результат операции.
Таблица 27 – Исходные данные для проверочной программы вычитания 8 - разрядных чисел и результаты выполнения
Вариант | |||||
(D) | 1F | 2E | 3B | 3C | 4A |
(E) | 0A | 0A | |||
(C) | |||||
(F) |
Проверочную программу вычитания (с учетом загрузки данных) записать в таблицу, аналогичную по форме таблице 25. Начальный адрес проверочной программы 0A10H.
2 Полученный результат записать в отчет и сравнить с ожидаемым. Преобразовать в двоичный код и проанализировать содержимое регистра F.
Команды двойного сложения
DAD H – сложение HL ← (HL) + (HL);
DAD B – сложение HL ← (HL) + (BC);
DAD D – сложение HL ← (HL) + (DE).
4.1 Записать в память, начиная с адреса 0820H, коды программы
(таблица 28), реализующей операцию:
HL ← (BC) + (DE).
Таблица 28 – Контрольная программа сложения 16 - разрядных чисел
Адрес | Команда | Операнд | Машинный код | Комментарий |
MOV | H, B | ; Пересылка H ← (B) | ||
MOV | L, C | ; Пересылка L ← (C) | ||
DAD | D | ; HL ← (HL) + (DE) | ||
HLT | ;останов |
4.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 29, и проверить результаты (результат операции в паре рег. HL, биты условий в рег. F):
СТ0820 0823ВП.
Таблица 29 – Исходные данные для контрольной программы суммирования 16 - разрядных чисел
Вариант | |||||
(BC) исх. | 7FFF | 55AA | ECB9 | ||
(DE) исх. | 7FFF | AA55 | |||
(HL) рез. | 7FFF | FFFF | FFFF | FFFF | |
(F) |
Команды инкремента
INR ri – увеличение на 1 содержимого регистра: A, B, C, D, E, H или L;
INR M – увеличение на 1 содержимого ячейки памяти, адрес М в HL;
INX ri – увеличение на 1 содержимого пары регистров: BC, DE, HL или SP (указателя стека). В команде указывается идентификатор старшего регистра пары, например, INX B.
5.1 Записать в память, начиная с адреса 0830H, код команды, которая указана в таблице 30.
Таблица 30 – Контрольная команда инкремента содержимого регистра E
Адрес | Команда | Операнд | Машинный код | Комментарий |
INR | E | 1C | ; E ← (E) + 1 | |
HLT | ;останов |
5.2 Выполнить данную команду для следующих исходных значений регистра E (таблица 31) и проверить полученные результаты:
СТ0830 0831ВП.
Таблица 31 – Исходные данные для контрольной команды инкремента содержимого
регистра E
Вариант | |||||
(E) – исх. | 0F | F0 | FF | FE | |
(E) – рез. | F1 | FF | |||
(F) |
5.3 Записать в память, начиная с адреса 0840H, коды команд, которые указаны в таблице 32.
Таблица 32 – Контрольная программа инкремента содержимого ячейки памяти
Адрес | Команда | Операнд | Машинный код | Комментарий |
LXI | H, 0900H | 21 00 09 | ; Загр. HL=0900H, адр. M | |
INR | M | ; M = (M) + 1 | ||
HLT | ;останов |
5.4 Выполнить данную последовательность команд для следующих исходных значений содержимого ячейки памяти (таблица 33) и проверить полученные результаты:
СТ0840 0844ВП.
Таблица 33 – Исходные данные для контрольной программы инкремента содержимого ячейки памяти
Вариант | |||||
(M) – по адр. 0900H, исх. Данные | 0F | F0 | FF | FE | |
(M) – по адр. 0900H, результаты | F1 | FF | |||
(F) |
5.5 Записать в память по адресу 0850H код команды, которая указана в таблице 34.
Таблица 34 – Контрольная команда инкремента пары регистров
Адрес | Команда | Операнд | Машинный код | Комментарий |
INX | D | ; DE ← (DE) + 1 | ||
HLT | ;останов |
5.6 Выполнить команду для следующих исходных значений пары регистров DE (таблица 35) и проверить полученные результаты:
СТ0850 0851ВП.
Так как команда «инкремент пары регистров» не затрагивает биты признаков, значение регистра признаков остается равным значению регистра признаков в последнем задании.
Таблица 35 – Исходные данные для контрольной команды инкремента пары регистров
Вариант | |||||
(DE) – исх. | 0F0F | 00FF | FFFF | FFFE | |
(DE) – рез. | 0F10 | FFFF | |||
(F) |
Задание 3:
Написать с адреса 0A20H и выполнить программу заполнения массива памяти (0900H…0904H) данными соответственно (00…04), используя команды загрузки и инкремента пары регистров и регистра, а также пересылки. Программу (с учетом загрузки исходных данных) записать в таблицу, аналогичную по форме таблице 34. Проверить и записать в отчет полученные результаты.. Сделать выводы.
Команды декремента
DCR ri – уменьшение на 1 содержимого регистра: A, B, C, D, E, H или L;
DCR M – уменьшение на 1 содержимого ячейки памяти, адрес М в HL;
DCX ri – уменьшение на 1 содержимого пары регистров: BC, DE, HL или SP (указателя стека). В команде указывается идентификатор старшего регистра пары, например DCX B.
6.1 Записать в память, начиная с адреса 0860H, код команды, которая указана в таблице 36.
Таблица 36 – Контрольная команда декремента содержимого регистра C
Адрес | Команда | Операнд | Машинный код | Комментарий |
DCR | C | 0D | ; C ← (C) – 1 | |
HLT | ;останов |
6.2 Выполнить данную команду для следующих исходных значений регистра C (таблица 37) и проверить полученные результаты:
СТ0860 0861ВП.
Таблица 37 – Исходные данные для контрольной команды декремента содержимого регистра C
Вариант | |||||
(C) – исх. | FF | ||||
(C) – рез. | FF | 0F | FE | ||
(F) |
6.3 Записать в память, начиная с адреса 0870H, коды команд, которые указаны в таблице 38.
Таблица 38 – Контрольная программа декремента содержимого ячейки памяти
Адрес | Команда | Операнд | Машинный код | Комментарий |
LXI | H, 0910H | 21 10 09 | ; Загр. HL=0910H, адрес M | |
DCR | M | ; M = (M) – 1 | ||
HLT | ;останов |
6.4 Выполнить данную последовательность команд для следующих предварительно записанных исходных значений содержимого ячейки памяти (таблица 39) и проверить полученные результаты:
СТ0870 0874ВП.
Таблица 39 – Исходные данные для контрольной программы декремента содержимого ячейки памяти
Вариант | |||||
(M) – по адр. 0910H, исх. данные | FF | ||||
(M) – по адр. 0910H, результаты | FF | 0F | FE | ||
(F) |
6.5 Записать в память по адресу 0880H код команды, которая указана в таблице 40.
Таблица 40 – Контрольная команда декремента содержимого пары регистров HL
Адрес | Команда | Операнд | Машинный код | Комментарий |
DCX | H | 2B | ; HL ← (HL) – 1 | |
HLT | ;останов |
6.6 Выполнить команду для следующих исходных значений содержимого регистров HL (таблица 41) и проверить полученные результаты:
СТ0880 0881ВП.
Команда декремент пары регистров не затрагивает биты признаков.
Таблица 41 – Исходные данные для контрольной команды декремента содержимого пары регистров HL
Вариант | |||||
(HL) – исх. | FFFF | AAAA | |||
(HL) – рез. | FFFF | 0FFF | FFFE | AAA9 | |
(F) |
Задание 4:
1 Написать с адреса 0A50H и выполнить программу заполнения массива памяти (090FH…090AH) данными соответственно (0F…0A), используя команды загрузки и декремента пары регистров и регистра, а также пересылки. Программу (с учетом загрузки исходных данных) записать в таблицу, аналогичную по форме таблице 40. Проверить полученные результаты. Сделать выводы.
ЛАБОРАТОРНАЯ РАБОТА № 17