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 . . . ; нулевое значение?

 

 








Дата добавления: 2016-01-26; просмотров: 1337;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.005 сек.