Лабораторная работа №10
Тема: «Логические команды.»
Цель работы: исследование логических команд и команд маскирования.
Оборудование: стенд микро – ЭВМ демонстрационный К-35.
Краткие теоретические сведения.
Команды этой группы выполняют логические операции над данными, которые хранятся в памяти, регистрах, команде. Если нет особых указаний, команды воздействуют на флаги в соответствии со стандартными правилами. Логические команды приведены в таблице 1.
Таблица 1.
Мнемоника | Название и описание | Устанавливаемые признаки |
ANA r ANA M ANI data8 XRA r XRA M XRI data8 ORA r ORA M ORI data8 | Логическое умножение (A) AND (r)=>(A) (A) AND (M)=>(A) (A) AND data8=>(A) Исключающее ИЛИ (A) XOR (r)=>(A) (A) XOR (M)=>(A) (A) XOR data8=>(A) ИЛИ (A) OR (r)=>(A) (A) OR (M)=>(A) (A) OR data8=>(A) | S, Z, P, C, AC S, Z, P, C, AC S, Z, P; C=0; AC=0 |
Основными логическими операциями цифровых схем являются операции логического умножения, логического сложения, отрицания и исключающего ИЛИ. Каждая из этих функций может быть реализована микро ЭВМ.
Функцию НЕ выполняет команда СМА. Каждый бит аккумулятора после выполнения этой команды инвертируется.
Функцию И выполняет команда ANA R. Символ R обозначает либо один из регистров, либо ячейку памяти. Например ANA D вызывает объединение по «И» содержимого регистра D не изменяется.
Функцию ИЛИ выполняет команда ORA R (объединение по «ИЛИ» аккумулятора и регистра R).
Функцию «Исключающего ИЛИ» выполняет команда ХRA R.
Поскольку адрес и данные определять не нужно, то все эти команды требуют только один байт кода операции.
Порядок выполнения работы.
1. Задание 1. Исследование логических команд.
Программа демонстрирующая использования логических команд приведена в таблице2.
Таблица 2.
Адрес | Данные | Команда | Комментарии |
080А 080B 080C 080D 080E 080F | 0F DB F0 A0 0E F0 DB F0 B1 DB F0 EE FF | MVI B IN ANA B STA MVI C IN ORA C STA IN XRI STA | Загрузка в В числа 0F Ввод в аккумулятор данных с клавиатуры (А) AND (B) =>(A) Запись содержимого аккумулятора в память по адресу 0821 Загрузка в С числа F0 Ввод в аккумулятор данных с клавиатуры (А) OR (B) =>(A) Запись содержимого аккумулятора в память по адресу 0821 Ввод в аккумулятор данных с клавиатуры (А) XOR (data8) => (A) Запись содержимого аккумулятора в память по адресу 0821 |
Порядок выполнения задания.
1.1.Занести программу из таблицы 1 в память по адресам 0800+0816.
1.2.Осуществить безусловный переход по адресу 0800.
1.3.Перевести микроЭВМ в пошаговый режим (на индикаторах адреса 0800, данные 06).
Выполнить программу в пошаговом режиме. При выполнении команды IN port (код операции DВ) необходимо осуществить ввод данных с клавиатуры, для этого:
1) в момент вставления МП на ША адреса F0F0 нажать клавишу КЛ (при этом устройством ввода будет клавиатура);
2) на клавишах ДАННЫЕ набрать информацию N1N2;
3) нажать клавишу ПУСК;
4) отжать клавишу КЛ.;
5) на индикаторах АДРЕС - адрес следующей команды
на индикаторах ДАННЫЕ - код следующей команды;
1.4.Осуществить проверку правильности работы программы, для чего перевести микроЭВМ в режим работы ПДП и проверить содержимое ячеек памяти 0820, 0821, 0822.
В ячейке 0820 должно быть (0F)^(n1n2),
где n1n2 - первое число вводимое с клавиатуры в ячейке 0821 - (F0)v(n1n2),
n1n2 - число вводимое с клавиатуры вторым в ячейке 0822 - (n1n2)(=)(FF);
n1n2 - третье число вводимое с клавиатуры.
2. Задание 2. Исследование команд маскирования.
Типичное применение логических команд - выделение определенных битов слова (или маскирование).
Для примера предположим, что необходимо проверить состояние одной из клавиш клавиатуры, а состояние остальных проигнорировать.
Таблица 3 содержит программу проверки состояния седьмой клавиши, относящейся к группе данных. Первоначальные данные с клавиатуры считываются в аккумулятор, затем в регистр С заносится маскирующее слово, после чего содержимое аккумулятора и регистра объединяют по схеме И, в результате все биты, кроме седьмого, приводятся к нулю. Значение седьмого бита результата будет зависеть от положения седьмой клавиши. В случае если клавиша не нажата, программа переходит на останов, в противном случае осуществляется переход на начало программы.
Таблица 3
Адрес | Данные | Команда | Комментарии |
080А 080B | IN F0 MVI C,80 ANA C JZ 080B JMP 0800 HLP | Ввод в аккумулятор данных с клавиатуры Запись в регистр С маскирующего слова 10000000 (А) AND (C) =>(A) Проверка аккумулятора на нуль, если нуль переход на «Останов» Переход на начало программы, если была нажата седьмая клавиша. «Останов». |
Порядок выполнения задания.
2.1.Переведите программу из таблицы 2 в машинный код, введите её в память и проверьте правильность ввода программы.
2.2Выполните программу в пошаговом режиме и проверьте правильность клавиши на порядок выполнения команд. В случае, если седьмая клавиша не нажата, осуществляется переход к выполнению команды ОСТАНОВ (после её выполнения отключается индикация на шинах). Состояние остальных клавиш безразлично.
2.3.Измените программу так, чтобы проверить другую клавишу.
2.4.Программу и результаты её проверки занести в отчёт.
Содержание отчета.
1. Название лабораторной работы.
2. Цель работы.
3. Программы и результаты их выполнения.
4. Вывод.
Контрольные вопросы.
1.Обычная схема “И” ТТ- логики требует на выполнение операции 10нс. Одна команда МП выполняется примерно за 3 мкс. Во сколько раз медленнее выполняется операция “И” ЭВМ по сравнению с обычной ИМС?
2.Назовите команды, выполняющие логические операции.
3.Какую функцию выполняет команда JZ?
4.Перечислите основные требования безопасности при работе со стендом микро - ЭВМ К-35.
Литература.
- Калабеков Б.П. Микропроцессоры и их применение в системах обработки информации сигналов. М.: Энергоатомиздат, 1986.
- Корячко В.П. Микропроцессоры и микро ЭВМ в радиоэлектронных средствах. М.: Высшая школа, 1990.
- Нешумова К.А. ЭВМ и системы. М: Высшая школа, 1988.