- •Лабораторная работа № 8 Логические команды
- •Цель работы
- •2.Основные теоретические сведения
- •3. Порядок выполнения работы
- •3.1. Исследование логических команд
- •3.1.1. Команды логического умножения
- •3.1.2 Команды логического сложения
- •3.1.3. Команды Исключающего или
- •3.1.4. Команды инверсии, обмена тетрад и сброса аккумулятора
- •3.1.5. Применение логических команд для переключения банков регистров
- •3.1.6. Задания для самостоятельной работы
- •4.Содержание отчета
- •Контрольные вопросы
3. Порядок выполнения работы
3.1. Исследование логических команд
3.1.1. Команды логического умножения
1. Запустите симулятор/отладчик AVSIM51, отключите отображение меток и занесите в память программ коды программы, реализующей операцию
(A) = (A) (R2) (30H) (В) (7FH).
ANL A, R2 ; (A) (A) (R2)
MOV R0, #30H ; (R0) #30H - адрес ячейки 30H
ANL A, @R0 ; (A) (A) ((R0))
ANL A, B ; (A) (A) (B)
ANL A, #7FH ; (A) (A) #7FH
NOP ; Пустая команда
Занесите в регистры и ячейку памяти исходные данные (A) = 81H, (R2) = 77H, (B) = 6EH, (30H) = 45H. Выполните программу в пошаговом режиме, наблюдая за содержимым регистров и ячеек памяти, участвующих в программе, а также флагами МК. Запишите содержимое аккумулятора – результат выполнения программы.
Выполните проверку правильности работы программы «вручную», произведя логические операции над исходными данными по правилам алгебры логики.
2. Занесите в память программ симулятора программу, выполняющую маскирование (сброс, обнуление, очистку) 7-го разряда числа, находящегося в регистре R4.
Текст программы
MOV A, R4 ; Пересылка (A) (R4)
ANL A, #01111111B ; Лог. умножение аккумулятора и маски 01111111B=7FH
MOV R4, A ; Пересылка (R4) (A)
NOP ; Пустая команда
Выполните программу в пошаговом режиме, предварительно записав в регистр R4 исходные данные в соответствии с табл. 2.
Таблица 2
-
Исходные значения
Результат
Получено практически
Получено теоретически
FFH
0AH
Проверьте правильность работы программы «вручную», результаты проверки занесите в табл. 2.
3.1.2 Команды логического сложения
1. Запишите в память симулятора коды программы, реализующей операции
(A) = (A) (R3) (DPL) (40H) 80H.
ORL A, R3 ; (A) (A) (R3)
ORL A, DPL ; (A) (A) (DPL)
MOV R1, #40H ; (R1) #40H - адрес ячейки ПД
ORL A, @R1 ; (A) (A) ((40H))
ORL A, #80H ; (A) (A) #80H
NOP
Занесите в регистры и ячейку памяти следующие исходные данные (A) = 01H, (R3) = 10H, ((40H)) = 02H, (DPL) = 04H. Выполните программу в пошаговом режиме, наблюдая за содержанием регистров и ячейки памяти, а также флагов МК. Запишите содержимое аккумулятора – результата выполнения программы.
Выполните проверку правильности работы программы «вручную», произведя логические операции над исходными данными по правилам алгебры логики.
2. Запишите в память симулятора программу, выполняющую установку в 1 разрядов младшей тетрады байта, находящегося в регистре R5.
Текст программы
MOV A, R5 ; Пересылка (A) (R5)
ORL A, #00001111B ; Лог. сложение с маской 00001111B = 0FH
MOV R5, A ; Пересылка (R5) (A)
NOP
Выполните программу в пошаговом режиме, предварительно записав в регистр R5 исходные данные в соответствии с табл. 3.
Таблица 3
-
Исходные значения
Результат
Получено практически
Получено теоретически
F0H
AAH
Проверьте правильность работы программы «вручную», результаты проверки занесите в табл. 3.
3. Запишите в память симулятора программу, выполняющую упаковку данных. Упаковкой данных называют образование нового слова из полей (разрядов) других слов. В данной программе новое слово (байт) образуется из младшей тетрады байта из регистра R2 и старшей тетрады байта из регистра R3. Сформированный таким образом байт помещается в регистр R4. Текст программы
MOV A, R2 ; Пересылка (A) (R2)
ANL A, #00001111B ; Маскирование ст. тетрады, маска 00001111B = 0FH
MOV R7, A ; Пересылка (R7) (A) – запоминание результата
MOV A, R3 ; Пересылка (A) (R3)
ANL A, #11110000B ; Маскирование мл. тетрады, маска 11110000B = F0H
ORL A, R7 ; Упаковка байта (A) = (A) (R7)
MOV R4, A ; Пересылка (R4) (A)
NOP
Занесите в регистры исходные данные (R2) = 22H, (R3) = 33H. Выполните программу в пошаговом режиме и по содержимому регистра R4 убедитесь в правильности ее работы.