Студопедия

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

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

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






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






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

 

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

Команда AND маскирует (обнуляет) некоторые биты, после чего можно выпол­нить дальнейшую обработку остальных битов. В каждой позиции бита, где оба операнда содержат 1, операнд-приемник также будет содер­жать 1. В тех же позициях, где операнды имеют любую другую комбинацию значе­ний, операнд-приемник будет содержать 0.

Приведем несколько примеров команд AND:

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

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

AND MEM_BYTE; или наоборот

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

AND TABLE[BX], MASK3; или ячейкой памяти

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

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

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

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

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

Команда 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. Если оба операнда содержат в данной позиции либо 0, либо 1, то команда XOR обнуляет этот бит приемника.

Например, команда

XOR ВХ, 0С000Н

обращает состояния двух старших битов регистра ВХ (14 и 15) и сохраняет осталь­ные биты неизменными.

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

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

 

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

Когда вслед за командой TEST указана команда JNZ (jump if not zero - перейти, если не нуль), переход произойдет только в том случае, если хотя - бы один бит у обоих операндов содержат 1. Несколько примеров:

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

Jnz...; равен 1?

2. Test AL, 00000001B; Регистр AL содержит

Jnz...; нечетное значение?

3. Test DX, 0FFFFH; Регистр DX содержит

Jz...; нулевое значение?

 

 






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