Команды сравнения с содержимым регистра
CMR A – сравнение с содержимым рег. А
CMR B – сравнение с содержимым рег. B
CMR C – сравнение с содержимым рег. C
CMR D – сравнение с содержимым рег. D
CMR E – сравнение с содержимым рег. E
CMR H – сравнение с содержимым рег. H
CMR L – сравнение с содержимым рег. L
2.2.1 Записать в память, начиная с адреса 0840Н, коды программы сравнения содержимого регистров С и В (таблица 53).
Таблица 53 – Контрольная программа сравнения содержимого регистров
Адрес | Команда | Операнд | Машинный код | Комментарий |
MOV | A, C | ; Пересылка A ← (C) | ||
CMR | B | B8 | ; Сравн. с рег.В | |
HLT | ;останов |
2.2.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 54:
СТ0840 0842ВП.
Проверить полученные результаты (см. таблицу 55). Для этого следует перевести содержимое регистра F из шестнадцатеричной системы счисления в двоичную. Распределение триггеров по разрядам регистра F следующее (таблица 54):
Таблица 54 – Распределение признаков в рег. F
Номер разряда рег. F | ||||||||
Признак | (TS) | (TZ) | (TAC) | (TP) | (TC) |
Таблица 55 – Исходные данные и результаты для контрольной программы сравнения содержимого регистров
Вариант | |||||
(С) | FF | ||||
(В) | FF | ||||
(F) | |||||
(TZ) | |||||
(TC) | |||||
(TS) | |||||
(TP) |
Задание 3:
Написать и выполнить программу сравнения содержимого регистров Н и L. Заполнить таблицу 56. Начальный адрес программы 0А30Н.
Таблица 56 – Исходные данные и результаты для проверочной программы сравнения содержимого регистров
Вариант | |||||
(H) | 1E | FF | |||
(L) | B8 | FF | |||
(F) | |||||
(TZ) | |||||
(TC) | |||||
(TS) | |||||
(TP) |
Проверочную программу записать в таблицу, аналогичную по форме таблице 53. Преобразовать в двоичную систему содержимое регистра F и сделать вывод о результатах сравнения с заданным числом.
Команды сдвига
Теоретическое обоснование
В системе команд микропроцессора КР580ВМ80 предусмотрены следующие команды сдвига:
1) циклический сдвиг влево;
2) циклический сдвиг вправо;
3) сдвиг влево через перенос;
4) сдвиг вправо через перенос.
Команды сдвига выполняются в регистре-аккумуляторе над 8-разрядными операндами. Результат пересылается в регистр-аккумулятор.
Команда циклического сдвига влево перемещает каждый бит байта на один разряд влево. При этом содержимое старшего разряда записывается в младший разряд и в бит переноса.
Команда сдвига влево через перенос перемещает содержимое каждого бита байта влево на один разряд. При этом содержимое бита переноса записывается в младший разряд, а содержимое старшего разряда пересылается в бит переноса. Используя эту команду можно, реализовать операцию умножения на число, кратное 2.
Команда сдвига вправо через перенос перемещает содержимое каждого разряда байта вправо на один разряд. При этом в старший разряд байта записывается значение бита переноса, а в него заносится содержимое младшего разряда байта. Используя эту команду, можно реализовать операцию деления на число, кратное 2.
Команды циклического сдвига
RLC – циклический сдвиг влево;
RRC – циклический сдвиг вправо.
3.2.1 Записать в память, начиная с адреса 0850Н, коды программы (таблица 57), реализующей операцию объединения старших тетрад двух байтов, содержащихся в рег. В и С, в один, используя команду RRC.
3.2.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 58.
СТ0850 085СВП.
Сравнить полученные результаты с данными таблицы 58.
Таблица 57 – Контрольная программа, содержащая команды сдвига и логические команды
Адрес | Команда | Операнд | Машинный код | Комментарий |
MOV | A, С | ; Перемещ. ст. тетр. 1 ;байта | ||
RRC | 0F | ; На место мл. тетрады | ||
RRC | 0F | ; | ||
RRC | 0F | ; | ||
RRC | 0F | ; | ||
ANI | 0FH | E6 0F | ; Выдел. ст. тетр. 1 ; байта | |
MOV | C, A | 4F | ; | |
MOV | A, B | ; | ||
ANI | F0H | E6 F0 | ; Выдел. ст. тетр. 2 ; байта | |
085В | ORA | C | B1 | ; Объедин. двух байтов в 1 |
085С | HLT | ;останов |
Таблица 58 – Исходные данные и результаты для контрольной программы, содержащей команды сдвига и логические команды
Вариант | ||||
(С) | F0 | |||
(В) | 9F | 0F | A3 | |
(А) – рез. | 0F | A5 |
3.3 Команды сдвига через перенос
RAL – сдвиг влево через перенос;
RAR – сдвиг вправо через перенос.
3.3.1 Записать в память, начиная с адреса 0860Н, коды программы (таблица 59), реализующей операцию умножения на 4, содержимого рег. С.
В = (С) ´ 4.
3.3.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 60:
СТ0860 0865ВП.
Проверить полученные результаты (см. таблицу 60).
Таблица 59 – Контрольная программа умножения на 4 путем сдвига влево
Адрес | Команда | Операнд | Машинный код | Комментарий |
MOV | A, С | ; A ← (C) | ||
ORA | A | B7 | ; Сброс бита переноса | |
RAL | ; Умножение на 2 | |||
RAL | ; Умножение на 2 | |||
MOV | B, A | ; Результат в В | ||
HLT | ;останов | |||
Примечание – Исходное значение не должно превышать 63 (десятичное). |
Таблица 60 – Исходные данные и результаты для контрольной программы умножения на 4
Вариант | |||||
(С) | 2F | ||||
(В) – рез. | BC | CC |
Задание 4:
Написать и выполнить программу деления содержимого регистра В на 4:
С = (В) : 4
Исходные данные взять из таблицы 61. Результаты записать в таблицу 61. Начальный адрес программы 0А30Н.
Таблица 61 – Исходные данные для проверочной программы деления на 4
Вариант | |||||
(В) – исх. | 0С | ||||
(С) – рез. |
Проверочную программу записать в таблицу, аналогичную по форме таблице 59. Вычислить ожидаемый результат путем сдвига заданного числа. Полученный результат сравнить с ожидаемым.
ЛАБОРАТОРНАЯ РАБОТА № 18