Команды логического сложения
ORA ri– с регистром: A, B, C, D, E, H или L;
ORA M– с ячейкой памяти, адрес ячейки памяти в HL;
ORI <B2> – с непосредственным операндом, B2 – второй байт команды.
1.2.1 Записать в память, начиная с адреса 0800H, коды программы (таблица 42), реализующей выражение:
A = (A) (C)
(M)
80H.
Таблица 42 – Контрольная программа, содержащая команды логического сложения
Адрес | Команда | Операнд | Машинный код | Комментарий |
ORA | C | B1 | ; A = (A) OR (C) | |
LXI | H, 0900H | 21 00 09 | ; Загр. HL=0900H, адр. М | |
ORA | M | B6 | ; A = (A)OR(М) | |
ORI | 80H | F6 80 | ; A = (A)OR 80Н | |
HLT | ; Останов |
1.2.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 43:
СТ0800 0807ВП.
Проверить полученные результаты (см. таблицу 42).
Таблица 43 – Исходные данные и результаты для контрольной программы,
содержащей команды логического сложения
Вариант | |||||
(А) – исх. | FF | АА | |||
(С) | |||||
(М) по адр. 0900Н | |||||
(А) – рез. | FF | FF | F7 | ||
(F) |
Команды логического умножения
ANA ri– с регистром: A, B, C, D, E, H или L;
ANA M– с ячейкой памяти, адрес ячейки памяти в HL;
ANI <B2> – с непосредственным операндом, B2 – второй байт команды.
1.3.1 Записать в память, начиная с адреса 0810Н, коды программы (таблица 44), реализующей выражение:
A = (A) (D)
(M)
7FH.
Таблица 44 – Контрольная программа, содержащая команды логического умножения
Адрес | Команда | Операнд | Машинный код | Комментарий |
ANA | D | A2 | ; A = (A) AND (D) | |
LXI | H, 0910H | 21 10 09 | ; Загр. HL=0910H, адр. М | |
ANA | M | A6 | ; A = (A) AND (М) | |
ANI | 7FH | E6 7F | ; A = (A) AND 7FН | |
HLT | ;останов |
1.3.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 45:
СТ0810 0817ВП.
Проверить полученные результаты (см. таблицу 45):
Таблица 45 – Исходные данные и результаты для контрольной программы,
содержащей команды логического умножения
Вариант | |||||
(А) – исх. | FF | DB | |||
(D) | A2 | FF | |||
(М) по адр. 0910Н | FF | C3 | 6E | 0F | |
(А) – рез. | 7F | ||||
(F) |
Задание 1:
Написать и выполнить программу реализации выражения:
M2 = (A) (M1)
(C)
(D).
Адрес ячеек памяти: М1 = 0920Н, М2 = 0921Н. Исходные значения взять из таблицы 46. Результаты записать в таблицу 46. Начальный адрес программы 0А00Н.
Проверочную с учетом загрузки исходных данных программу записать в таблицу, аналогичную по форме таблице 44. Вычислить ожидаемый результат. Сравнить ожидаемый результат с полученным. Преобразовать в двоичную систему счисления содержимое регистра F и сделать выводы о значениях признаков.
Таблица 46 – Исходные данные и результаты выполнения для проверочной
программы, содержащей команды логического сложения и умножения
Вариант | |||||
(А) | FF | 4A | |||
(C) | A2 | 4B | 7E | ||
(D) | A0 | F0 | |||
(M1) по адр. 0920Н | D5 | ||||
(M2) по адр. 0921Н | |||||
(F) |
Команды исключающие ИЛИ
XRA ri – с регистром: A, B, C, D, E, H или L;
XRA M – с ячейкой памяти, адрес ячейки памяти в HL;
XRI <B2> – с непосредственным операндом, B2 – второй байт команды.
1.4.1 Записать в память, начиная с адреса 0820Н, коды программы (таблица 47), реализующей выражение:
A = (A) (C)
(M)
AAH.
Адрес: М = 0930H.
Таблица 47 – Контрольная программа, содержащая команды логического сложения по модулю два
Адрес | Команда | Операнд | Машинный код | Комментарий |
XRA | A | AF | ; A = (A) XOR (A),A=00H | |
XRA | E, | AB | ; A = (A) XOR (E) | |
LXI | H, 0930H | 21 30 09 | ; Загр. HL=0930H, адр. М | |
XRA | M | AE | ; A = (A) XOR (M) | |
XRI | AAH | EE AA | ; A = (A) XOR AAH, рез. | |
HLT | ;останов |
1.4.2 Выполнить программу, задавая исходные значения в соответствии с таблицей 48:
СТ0820 0828ВП.
Проверить полученные результаты (см. таблицу 48):
Таблица 48 – Исходные данные и результаты для контрольной программы,
содержащей команды сложения по модулю два
Вариант | |||||
(А) – исх. | |||||
(E) | FF | C2 | AA | ||
(М) по адр. 0930Н | F0 | 0F | |||
(А) – рез. | 5A | 5A | 4A | AA | |
(F) |
Команда ИНВЕРСИЯ
CMA – инверсия содержимого регистра-аккумулятора.
1.5.1 Записать в память, начиная с адреса 0830Н, коды программы (таблица 49), реализующей выражение:
Таблица 49 – Контрольная программа, содержащая команды логического отрицания и умножения
Адрес | Команда | Операнд | Машинный код | Комментарий |
MOV | A, B | ; Пересылка А ← (B) | ||
CMA | 2F | ; A = NOT (A) | ||
MOV | B, A | ; Пересылка А ← (B), ; NOT (B) | ||
MOV | A, C | ; Пересылка А ← (C) | ||
CMA | 2F | ; A = NOT (A), NOT (C) | ||
ANA | B | A0 | ; A = (A) AND (B) | |
CMA | 2F | ; A = NOT (A), рез. | ||
HLT | ;останов |
1.5.2 Выполнить программу, задавая исходные значения в соответствии с таблицей 50:
СТ0830 0837ВП.
Проверить полученные результаты (см. таблицу 50).
Таблица 50 – Исходные данные и результаты для контрольной программы,
содержащей команды логического отрицания и умножения
Вариант | |||||
(B) | FF | AB | |||
(C) | FF | ||||
(A) – рез. | FF | FF | BB | ||
(F) |
Задание 2:
Написать и выполнить программу реализации выражения:
.
Исходные значения взять из таблицы 51. Результат записать в таблицу 51. Начальный адрес программы 0А20Н.
Таблица 51 – Исходные данные и результаты для проверочной программы,
содержащей команды логического отрицания и сложения по модулю два
Вариант | |||||
(B) | |||||
(C) | 5E | F6 | 5A | ||
(A) – рез. | |||||
(F) |
Проверочную программу записать в таблицу, аналогичную по форме таблице 49. Вычислить ожидаемый результат. Сравнить ожидаемый результат с полученным. Преобразовать в двоичную систему счисления содержимое регистра F и сделать выводы о значениях признаков.
Команды сравнения
Теоретическое обоснование
Система команд микропроцессора КР580ВМ80 содержит три типа команд сравнения:
– сравнение содержимого аккумулятора с содержимым регистра: А, В, С, D, E, H или L;
– сравнение содержимого аккумулятора с ячейкой памяти по адресу HL;
– сравнение содержимого аккумулятора с непосредственным операндом.
Команды сравнения выполняются посредством внутреннего вычитания из содержимого аккумулятора, соответственно, содержимого регистра, ячейки памяти либо непосредственного операнда. Содержимое аккумулятора при этом не изменяется. В результате сравнения устанавливаются биты признаков следующим образом (таблица 52):
Таблица 52 – Значение битов признаков в зависимости от результата сравнения
Результат сравнения | Признак | |
(TZ) | (TC) | |
Равно Больше Меньше |
Бит четности устанавливается по результату внутреннего вычитания и, соответственно, равен 1, если количество единиц в результате четно, и равен 0, если количество нечетно.
Бит знака устанавливается равным значению старшего разряда результата внутреннего вычитания.