Команды сложения 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

Наши рекомендации