- •Логические команды и команды сдвига
- •5 Приборы, оборудование и документация
- •6 Порядок выполнения работы
- •7 Содержание отчёта
- •10.1.2 Команды логического сложения
- •10.1.3 Команды логического умножения
- •10.1.4 Команды исключающие или
- •10.1.5 Команда инверсия
- •10.2.1 Теоретическое обоснование
- •10.2.2 Команды сравнения с содержимым регистра
- •10.3 Команды сдвига
- •10.3.1 Теоретическое обоснование
- •10.3.2 Команды циклического сдвига.
- •10.3.3 Команды сдвига через перенос
- •Логические команды и команды сдвига
10.3.2 Команды циклического сдвига.
RLC – циклический сдвиг влево;
RRC – циклический сдвиг вправо.
10.3.2.1 Записать в память, начиная с адреса 0850Н, коды программы (таблица 16), реализующей операцию объединения старших тетрад двух байтов, содержащихся в рег. В и С, в один, используя команду RRC.
Таблица 16 – Контрольная программа, содержащая команды сдвига и логические команды
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0850 |
MOV |
A, С |
79 |
; Перемещ. ст. тетр. 1 ; байта |
0851 |
RRC |
|
0F |
; На место мл. тетрады |
0852 |
RRC |
|
0F |
; |
0853 |
RRC |
|
0F |
; |
0854 |
RRC |
|
0F |
; |
0855 |
ANI |
0FH |
E6 0F |
; Выдел. ст. тетр. 1 ; байта |
0857 |
MOV |
C, A |
4F |
; |
0858 |
MOV |
A, B |
78 |
; |
0859 |
ANI |
F0H |
E6 F0 |
; Выдел. ст. тетр. 2 ; байта |
085В |
ORA |
C |
B1 |
; Объедин. двух б-т в один |
10.3.2.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 17.
СТ0850 085СВП.
Сравнить полученные результаты с данными таблицы 17.
Таблица 17 – Исходные данные и результаты для контрольной программы, содержащей команды сдвига и логические команды
Вариант |
1 |
2 |
3 |
4 |
(С) |
72 |
F0 |
51 |
19 |
(В) |
9F |
0F |
A3 |
86 |
(А) – рез. |
97 |
0F |
A5 |
81 |
10.3.3 Команды сдвига через перенос
RAL – сдвиг влево через перенос;
RAR – сдвиг вправо через перенос.
10.3.3.1 Записать в память, начиная с адреса 0860Н, коды программы (таблица 18), реализующей операцию умножения на 4, содержимого рег. С.
В = (С) 4.
Таблица 18 – Контрольная программа умножения на 4 путём сдвига влево
Адрес |
Команда |
Операнд |
Машинный код |
Комментарий |
0860 |
MOV |
A, С |
79 |
; A ← (C) |
0861 |
ORA |
A |
B7 |
; Сброс бита переноса |
0862 |
RAL |
|
17 |
; Умножение на 2 |
0863 |
RAL |
|
17 |
; Умножение на 2 |
0864 |
MOV |
B, A |
47 |
; Результат в В |
Примечание 1 – Исходное значение не должно превышать 63 (десятичное).
10.3.3.2 Выполнить программу, предварительно задавая исходные значения в соответствии с таблицей 19:
СТ0860 0865ВП.
Проверить полученные результаты (см. таблицу 19).
Таблица 19 – Исходные данные и результаты для контрольной программы умножения на 4
Вариант |
1 |
2 |
3 |
4 |
5 |
(С) |
00 |
02 |
10 |
2F |
33 |
(В) – рез. |
00 |
08 |
40 |
BC |
CC |
Задание 4:
Написать и выполнить программу деления содержимого регистра В на 4:
С = В:4
Исходные данные взять из таблицы 20. Результаты записать в таблицу 20. Начальный адрес программы 0А30Н.
Таблица 20 – Исходные данные и результаты для проверочной программы деления на 4
Вариант |
1 |
2 |
3 |
4 |
5 |
(В) – исх. |
08 |
0С |
10 |
14 |
28 |
(С) – рез. |
|
|
|
|
|
Проверочную программу записать в таблицу, аналогичную по форме таблице 18.
План 2003/04, поз. 124
Богородов Владимир Ильич