Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР_8.doc
Скачиваний:
2
Добавлен:
27.09.2019
Размер:
122.37 Кб
Скачать

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 убедитесь в правильности ее работы.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]