Логические команды.
Основы информатики
Рассмотрим следующий пример применения команды AND. Пусть порт 200 соединен с 16-битовым регистром состояния внешнего устройства системы и бит 6 показывает, включено (1) или выключено (0) устройство. Если программа может продолжать работу только в случае, когда устройство включено, то она должна содержать следующий цикл: Операндами команд AND, OR, XOR могут быть байты или слова. В этих командах… Читать ещё >
Логические команды. Основы информатики (реферат, курсовая, диплом, контрольная)
Цели и задачи работы:
Краткие теоретические сведения:
К логическим командам относятся команды: AND, OR, XOR, NOT.
Операндами команд AND, OR, XOR могут быть байты или слова. В этих командах можно сочетать два регистра, регистр с ячейкой памяти или непосредственное значение с регистром или ячейкой памяти. Эти команды используются для манипулирования отдельными битами, а не целыми словами.
Команда AND или логическое умножение (операция И).
Выполняет логическое умножение значения каждого бита источника на соответствующее значение бита приемника и помещает результат в приемник. Данная команда применяется для фильтрации, маскирования или удаления некоторых битов.
Приведем несколько примеров команд AND:
AND AX, BX ;Выполнить AND над двумя регистрами.
AND AL, MEM_BYTE ;Выполнить AND над регистрoм и ячейкой памяти.
AND MEM_BYTE, AL ;или наоборот.
AND BL, 10 ;Выполнить AND над константой и регистром.
AND TABLE[BX], MASK# ;или ячейкой памяти При выполнении команды AND получается следующий результат:
Рассмотрим следующий пример применения команды AND. Пусть порт 200 соединен с 16-битовым регистром состояния внешнего устройства системы и бит 6 показывает, включено (1) или выключено (0) устройство. Если программа может продолжать работу только в случае, когда устройство включено, то она должна содержать следующий цикл:
PROV_PIT: IN AX, 20 ;Прочитать состояние устройства.
AND AX, 0040H;Изолировать индикатор включения.
JZ VKL_PIT ;Подождать включения питания,.
… ;затем продолжить работу.
Команда JZ (перейти, если 0) заставляет микропроцессор вернуться к команде IN (wwod) с меткой PROV_PIT, если флаг нуля равен 1, и перейти к следующей команде в противном случае. В данном примере флаг ZF равен 1 только в случае, когда индикатор включения (бит 6) равен 0, так как команда AND обнулила все остальные биты регистра AX. (Шестнадцатиричное число 0040H запишется в двоичном виде как.
100 0000B, т. е 1 умножится на 6 бит источника) Команда OR или логическое сложение (операция ИЛИ).
Выполняет следующее действие значение бита приемника OR значение бита источника Выполняет логическое сложение значения каждого бита источника с соответствующим значением бита приемника и помещает результат в приемник.
При выполнении команды OR получается следующий результат:
Команда OR обычно применяется для принудительного присваивания 1 заданным битам. Например, команда.
OR BX, 0C00H.
(число 0C00H в двоичном виде запишется как 11 000 000 0000B) устанавливает два бита (10 и 11) регистра BX в 1 и оставляет неизменными другие биты.
Команда XOR или сумма по модулю 2 (операция ИСКЛЮЧАЮЩЕЕ-ИЛИ).
Выполняет операцию ИСКЛЮЧАЮЩЕЕ-ИЛИ над значением каждого бита источника и соответствующим значением бита приемника и помещает результат в приемник.
Команда XOR обычно применяется, если надо выяснить, в каких битах значения операндов различаются, или если надо поменять значения заданных битов. Команда XOR устанавливает в 1 все биты приемника, в позициях которых операнды имеют различные значения и устанавливает в 0 те биты, в позиция которые операнды имеют одинаковые значения.
Например, команда.
XOR BX, 0C00H.
(число 0C00H в двоичном виде запишется как 11 000 000 0000B) изменяет состояния двух битов (10 и 11), оставляя остальные биты неизменными.
При выполнении команды XOR получается следующий результат:
Команда NOT или логическое отрицание (операция НЕ).
Выполняет инвертирование значения каждого бита регистра или ячейки памяти (обращает бит, равный 1 в 0, бит, равный 0 в 1) и ни на какие флаги не воздействует.
При выполнении команды NOT получается следующий результат:
Примечание: Микропроцессор позволяет оперировать числами как в двоичном, так и в десятичном и шестнадцатеричном представлениях. Например, 1 1111B-число в двоичном представлении (буква B от латинского binary-двоичное).
01AFH-число в шестнадцатеричном представлении (буква H в конце числа означает шестнадцатеричное представление). 127D-число в десятичном представлении (буква D от английского decimal, т. е. десятичное).
Задания:
- 1. Подготовиться к ответу на контрольные вопросы.
- 2. Используя обучающую программу, проверить, как работает каждая из логических команд.
- 3. Получить у преподавателя задание на написание программы с использованием логических команд.
Порядок выполнения работы:
Контрольные вопросы:
- 1. Назовите логические команды и объясните, как они работают.
- 2. На какие флаги воздействуют команды AND, OR, XOR, NOT ?
- 3. Где размещается результат выполнения логических команд?
- 4. Какие операнды допустимы в качестве регистра-источника в командах:
- а)AND;б)OR;в)XOR;г)NOT?
- 5. В каких случаях используются команды:
- а)AND;б)OR;в)XOR;г)NOT?