Читайте также: |
|
Операндами команд AND, OR и XOR могут быть байты или слова. В этих командах можно сочетать два регистра, регистр с ячейкой памяти или непосредственное значение с регистром или ячейкой памяти.
Команда AND маскирует (обнуляет) некоторые биты, после чего можно выполнить дальнейшую обработку остальных битов. Как уже упоминалось, в каждой позиции бита, где оба операнда содержат 1, операнд-приемник также будет содержать 1. В тех же позициях, где операнды имеют любую другую комбинацию значений, операнд-приемник будет содержать 0. Запомните, что при исполнении команды AND биты операнда-приемника становятся, равны 0 всюду, где операнд-источник содержит 0, и сохраняются там, где операнд-источник содержит 1.
Приведем несколько примеров команд AND:
AND АХ,ВХ;Выполнить AND над двумя регистрами
AND AL,MEM_BYTE;Выполнить AND над регистром и ячейкой памяти
AND MEM_BYTE; или наоборот
AND BL,1101В;Выполнить AND над константой и регистром
AND TABLE[BX],MASK3; или ячейкой памяти
Рассмотрим следующий пример применения команды AND. Пусть порт 200 соединен с 16-битовым регистром состояния внешнего устройства системы и бит 6 показывает, включено (1) или выключено (0) устройство. Если Ваша программа может продолжать работу только в случае, когда устройство включено, то она должна содержать следующий цикл:
CHK_PWR: IN AХ,200;Прочитать состояние устройства
AND AX,1000000B;Изолировать индикатор включения
JZ CHK_PWR;Подождать включения питания,...; а затем продолжить работу
Команда JZ (jump if zero - перейти если нуль), которая нами еще не рассматривалась, заставляет микропроцессор 8x86 вернуться к команде IN с меткой CHK_PWR, если флаг нуля ZF равен 1, и перейти к следующей команде в противном случае. В нашем примере флаг ZF равен 1 только в том случае, когда индикатор включения (бит 6) равен 1, так как команда AND обнуляет все остальные биты регистра АХ.
Команда OR полагает равным 1 те биты операнда-приемника, в позициях которых хотя бы один из операндов содержит 1. Эта команда обычно используется для принудительного присваивания 1 заданным битам. Например, команда
OR BX,OCOOH
полагает два старших бита (14 и 15) регистра ВХ равными 1 и оставляет другие биты не измененными.
Команда XOR используется, если надо выяснить, в каких битах значения операндов различаются, или если надо обратить состояния заданных битов. Команда XOR полагает равным 1 все те биты приемника, в позициях которых операнды имеют различные значения, иначе говоря, те биты, в позициях которых один из операндов имеет значение-0, а другой - 1. Если оба операнда содержат в данной позиции либо 0, либо 1, то команда XOR обнуляет этот бит приемника.
Например, команда
XOR BX,0C000H
обращает состояния двух старших битов регистра ВХ (14 и 15) и сохраняет остальные биты неизмененными.
Дата добавления: 2015-11-13; просмотров: 48 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Команда коррекции деления для представления в кодах ASCII (команда AAO ) | | | Команды сдвига |