лабораторные работы / Маскирование данных и организация условных переходов / лаб / маскирование данных
.docБАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ (ФИЛИАЛ)
ГОУ ВПО «САРАТОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ»
ФАКУЛЬТЕТ ВЕЧЕРНЕ-ЗАОЧНЫЙ
КАФЕДРА «УПРАВЛЕНИЕ И ИНФОРМАТИКА В ТЕХНИЧЕСКИХ СИСТЕМАХ»
ЛАБОРАТОРНАЯ РАБОТА
Маскирование данных и организация условных переходов
Выполнила ст.гр. УИТ 63-в
Багач Н. Ю.
Ионов В. В.
Проверила: Евтушевская Т. Д.
2009г.
Цель работы: изучение программных способов маскирования данных и организации условных переходов в микро ЭВМ.
Задание 1
Заполнить таблицу для команд. Проверить правильность заполнения на учебном микропроцессорном комплекте
-
ANA R, XRI B2, CMP M
-
ANA M, XRA A, CPI B2
-
ANI B2, XRA M, CMP R
Составить таблицу выполненной программы
Команда |
Маска |
Число в А |
|
До выполнения команды |
После выполнения команды |
||
ANA R |
00010000 |
00010000 |
00010000 |
XRI B2 |
00010000 |
00011000 |
00001000 |
ANA M |
00010000 |
00010000 |
00010000 |
XRA A |
00010000 |
00011000 |
00001000 |
ANI B2 |
00010000 |
00010000 |
00010000 |
XRA M |
00010000 |
00011000 |
00001000 |
CMP M |
00010000 |
00011000 |
00011000 |
1. Команда ANA, R
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 06 MVI,10 – пересылка в регистр В число 10
П 0804 10
П 0805 АО АNA,B – логическое умножение содержимого регистра А
П 0806 CF RST 1 – прервать команду
СТ 0800 0806 ВП
РГ А=10
Проверка:
2. Команда XRI, R
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 EE XRI,10 – логическое «исключающее «ИЛИ» содержимого А
П 0804 10
П 0805 CF RST 1 – прервать команду
СТ 0800 0805 ВП
РГ А=08
Проверка:
3. Команда ANA, М
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 06 MVI,B10 – пересылка в регистр В число 10
П 0804 10
П 0805 А6 АNA,М – логическое умножение содержимого ячейки памяти
П 0806 CF RST 1 – прервать команду
СТ 0800 0806 ВП
РГ А=10
Проверка:
4. Команда XRА, А
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 06 MVI,B10 – пересылка в регистр В число 10
П 0804 10
П 0805 А6 XRА, А– поразрядное исключающее ИЛИ над содержимым регистра А
П 0806 CF RST 1 – прервать команду
СТ 0800 0806 ВП
РГ А=08
Проверка:
5. Команда ANI, B2
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 E6 ANI, B10 – логическое умножение данных регистра А
П 0804 10
П 0805 CF RST 1 – прервать команду
СТ 0800 0805 ВП
РГ А=10
Проверка:
6. Команда XRА, М
П 0С00 18 ВП
П 0800 3А LDA – прямая загрузка числа 18 регистр А
П 0801 00
П 0802 0С
П 0803 06 MVI,B10 – пересылка в регистр В число 10
П 0804 10
П 0805 АЕ XRА, М– поразрядное исключающее ИЛИ над содержимым ячейки памяти и А-регистра
П 0806 CF RST 1 – прервать команду
СТ 0800 0806 ВП
РГ А=08
Проверка:
Задание 2.
2.1 Сравнить числа, записанные по адресам 0В00 и 0В01, и записать большее из них в регистр В.
П 0В00 18 ВП
П 0В01 10 ВП
П 0800 3А LDA – прямая загрузка числа 18 в регистр А
П 0801 00
П 0802 0В
П 0803 57 MOV D,A – пересылка данных в регистр D
П 0804 3А LDA – прямая загрузка числа 10 в регистр А
П 0805 01
П 0806 0В
П 0807 ВЕ СМР, М – сравнение содержимого ячейки памяти
П 0808 F2
П 0809 ОЕ
П 080А 08
П 080В С3 JMP
П 080С OF
П 080D 08
П 080Е 47 MOV B,A – пересылка данных в регистр D
П 080F CF STA1 прервать команду
СТ 0800 080F ВП
РГ В=18
Программа выполнена правильно т.к. в регистре В записано число 18, а оно больше 10.
2.2 Пользуясь логическими командами, проверить первый и четвёртый разряды числа и, если они равны 0, установить в них 1.
П 0В00 10 ВП
П 0800 3А LDA – прямая загрузка числа 10 в регистр А
П 0801 00
П 0802 0В
П 0803 E6 ANI
П 0804 01
П 0805 78 MOV B,A
П 0806 CA JZ
П 0807 0C
П 0808 08
П 0809 C3 JMP
П 080A 0E
П 080B 08
П 080C F6 ORI
П 080D 10
П 080E 78 MOV B,A
П 080F 3A LDA
П 0810 01
П 0811 0B
П 0812 E6 ANI
П 0813 01
П 0814 78 MOV B,A
П 0815 CA JZ
П 0816 0C
П 0817 08
П 0818 C3 JMP
П 0819 0E
П 0820 08
П 0821 CF STA1 прервать команду
СТ 0800 0821 ВП
Вывод:
Производить маскирование команд можно, используя операнды в памяти, в регистре и непосредственные операнды (в коде команды). Функция команды ANA и ANI позволяет сбрасывать, функция ORA и ORI – устанавливать, а функция XRA и XRI - инвертировать необходимые биты операнда. Команды сравнения CMP и CPI позволяют сравнивать два числа.
Также установлено, что команда XRA A обнуляет регистр аккумулятор.