Команды сравнения с содержимым регистра

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

Вариант
(В) – исх.
(С) – рез.          

Проверочную программу записать в таблицу, аналогичную по форме таблице 59. Вычислить ожидаемый результат путем сдвига заданного числа. Полученный результат сравнить с ожидаемым.

ЛАБОРАТОРНАЯ РАБОТА № 18

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