Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






TEST приемник,источник;






Команды этой группы выполняют логические операции над операндами. Операндами команд AND, OR и XOR могут быть байты или слова. В этих командах можно сочетать два регистра, регистр с ячейкой памяти или непосредственное значение с регистром или ячейкой памяти. Результаты выполнения команд приведены в таблице 3.4.

Таблица 3.4- Результаты исполнения команд AND, OR и XOR

Источник   Приемник   Результат
        AND   OR   XOR  
         
         
         
         
         
           

 

Команда AND выполняет логическую функцию И на двумя операндами (таблица 3.2). Ее можно использованть только с операндами одинакового размера. Команда AND часто применяется для сброса определенных бит операндов в 0. Приведем несколько примеров команд AND:

AND АХ, ВХ; Выполнить AND над двумя регистрами.

AND AL, M_BYTE; Выполнить AND над регистром и ячейкой памяти.

AND M_BYTE, AL; Выполнить AND над ячейкой памяти и регистром.

AND BL, 1101B; Выполнить AND над константой и регистром.

AND 1101B, MASK3; Выполнить AND над константой и ячейкой памяти.

Рассмотрим еще один пример применения команды AND. Пусть порт 200 соединен с 16-битовым регистром состояния внешнего устройства системы и бит 6 показывает, включено (1) или выключено (0) устройство. Если программа может работать только в случае, когда устройство включено, то она должна содержать следующий цикл:

M1: IN АХ, 200; Прочитать состояние устройства.

AND АX, 000000100000B; Изолировать индикатор включения.

JZ M; Подождать включения питания,

∙ ∙ ∙; а затем продолжить работу.

Инструкция JZ (jump if zero - перейти если нуль), заставляет микропроцессор вернуться к команде IN с меткой M1, если флаг нуля ZF равен 1, и перейти к следующей команде в противном случае. В нашем примере флаг ZF равен 1 только в том случае, когда индикатор включения (бит 6) равен 1, так как команда AND обнуляет все остальные биты регистра АХ.

Команда OR выполняет логическую функцию ИЛИ над операндами и оставляет результат в первом операнде. Она полагает равным 1 те биты операнда-приемника, в позициях которых хотя бы один из операндов содержит 1. Эта команда обычно используется для принудительного присваивания 1 заданным битам. Например, команда OR BX, 0C000H; устанавливает два старших бита (14 и 15) регистра ВХ в 1 и оставляет другие биты не измененными.

Команда XOR выполняет булеву операцию исключающее ИЛИ над двумя операндами и помещает результат в первый операнд. Команда XOR полагает равным 1 те биты приемника, в позициях которых операнды имеют различные значения. Если оба операнда содержат в данной позиции либо 0, либо 1, то команда XOR обнуляет этот бит приемника. Часто команду XOR используют для обнуления регистров или ячеек памяти.

Например: XOR ВХ, 0С000Н; Инвертирует 14 и 15 биты ВХ.

XOR ВХ, ВХ; Обнуляет регистр ВХ.

Команда TEST (test - проверить) выполняет операцию AND над опе­рандами, но воздействует только на флаги и не изменяет значения операндов. Команда TEST изменяет флаги точно так же, как команда AND: она обнуляет флаги CF и OF, изменяет флаги PF, ZF и SF, а флаг AF оставляет неопределенным. Когда вслед за командой TEST указана команда JNZ (jump if not zero - перейти, если не нуль), переход произойдет только в том случае, если хотя бы один бит у обоих операндов равен 1. Приведем два примера использования команды Test:

1.Test BL, 11110000B; Любой из левых битов в BL равен 1?

Jnz МП; Если нет, перейти на метку МП.

2. Test DX, 0FFFFH; Регистр DX содержит нулевое значение?

Jz МП; Если да, перейти на метку МП.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.