лабораторные работы / Маскирование данных и организация условных переходов
.DOCБАЛАКОВСКИЙ ИНСТИТУТ ТЕХНИКИ, ТЕХНОЛОГИИ И УПРАВЛЕНИЯ
ФАКУЛЬТЕТ ИНЖЕНЕРНО-СТРОИТЕЛЬНЫЙ
КАФЕДРА УПРАВЛЕНИЕ И ИНФОРМАТИКА В ТЕХНИЧЕСКИХ СИСТЕМАХ
Лабораторная работа №2
по дисциплине
Микропроцессорные устройства
Маскирование данных и организация условных переходов
Выполнили ст. гр. УИТ-51
Павлов А.А.
Мельников А.А.
Симакин С.Е.
Захарочкин А.П.
Принял
Грицюк С.Н.___________
“_____” ___________2004г
2004
Цель работы: изучение программных способов маскирования данных и организации условных переходов в микроЭВМ.
Задание 1
Заполнить таблицу для команд. Проверить правильность заполнения на учебном микропроцессорном комплексе.
Команда |
Где операнд |
Маска |
Число в A |
Регистр F |
||
до |
после |
до |
после |
|||
ANA R |
В регистре |
0101 1000 |
0011 1110 |
0001 1000 |
00000010 |
00000110 |
XRI D |
В команде |
0101 1000 |
0011 1110 |
0100 0110 |
00000010 |
00000010 |
CMP M |
В памяти |
0101 1000 |
0011 1110 |
0011 1110 |
00000010 |
00000011 |
ANA M |
В памяти |
1001 0010 |
0011 1110 |
0001 0010 |
00000010 |
00000110 |
XRA A |
В аккумул. |
1001 0010 |
0011 1110 |
1100 0001 |
00000010 |
10000010 |
CPI D |
В команде |
1001 0010 |
0011 1110 |
0011 1110 |
00000010 |
00000011 |
ANI D |
В команде |
0001 1101 |
0011 1110 |
0001 1100 |
00000010 |
00000010 |
XRA M |
В памяти |
0001 1101 |
0011 1110 |
0010 0011 |
00000010 |
00000010 |
CMP R |
В регистре |
0001 1101 |
0011 1110 |
0011 1110 |
00000010 |
00000010 |
Вывод. Производить маскирование команд можно, используя операнды в памяти, в регистре и непосредственные операнды (в коде команды). Функция AND (команды ANA и ANI) позволяет сбрасывать, функция OR (ORA и ORI) – устанавливать, а функция XOR (XRA и XRI) - инвертировать необходимые биты операнда. Команды сравнения CMP и CPI позволяют сравнивать два числа.
Также установлено, что команда XRA A обнуляет регистр аккумулятор.
Задание 2
Написать программы и отладить на учебном микропроцессорном комплексе.
2.1 Сравнить числа, записанные по адресам 0B00 и 0B01, и записать большее из них в регистр B.
0800 21 000B LXI HL,0B00
0803 7E MOV A,M
0804 23 INX HL
0805 46 MOV B,M
0806 B8 CMP B
0807 FA 0B08 JM 080B
080A 47 MOV B,A
080B CF RST1
2.2 Пользуясь логическими командами, проверить первый и четвёртый разряды числа 6210 и, если они равны 0, установить в них 1.
Переведём число 62 в двоичную и шестнадцатеричную системы:
6210 = 3E16 = 001111102
Просто установив первый и четвёртый разряды, мы выполним поставленное требование.
0800 46 3E MVI B,3E
0802 78 MOV A,B
0803 F6 12 ORI 12 00010010
0805 4F MOV C,A
0806 CF RST1
Вывод. Получены практические навыки по программированию в ассемблере и машинных кодах.