Справочник по языку Ассемблера IBM PC


          

В этой команде операнд_2, выполняющий


        or      eax,10b ;установить 1-й бит в регистре eax  

Для сброса определенных разрядов (бит) в 0

применяется команда

and операнд_1,операнд_2.

В этой команде операнд_2, выполняющий роль маски, должен содержать нулевые биты на месте тех разрядов, которые должны быть установлены в 0 в операнд_1.

          and     eax,fffffffdh   ;сбросить в 0 1-й бит в регистре eax  

Команда xor операнд_1,операнд_2 применяется:

для выяснения того, какие биты в операнд_1 и операнд_2 различаются;

для инвертирования состояния заданных бит в операнд_1.

          xor     eax,10b ;инвертировать 1-й бит в регистре eax         jz      mes     ;переход, если 1-й бит в al был единичным  

 

Интересующие нас биты маски (операнд_2) при выполнении команды xor должны быть единичными, остальные — нулевыми.

Для проверки состояния заданных бит применяется команда

test операнд_1,операнд_2 (проверить операнд_1).

Проверяемые биты операнд_1 в маске (операнд_2) должны иметь единичное значение. Алгоритм работы команды test подобен алгоритму команды and, но он не меняет значения операнд_1.

Результатом команды является установка значения флага нуля zf:

если zf = 0, то в результате логического умножения получился нулевой результат, то есть один единичный бит маски, который не совпал с соответствующим единичным битом операнд_1;

если zf = 1, то в результате логического умножения получился ненулевой результат, то есть хотя бы один единичный бит маски совпал с соответствующим единичным битом операнд_1.

 
          test    eax,00000010h         jz      m1      ;переход, если 4-й бит равен 1  

<

Содержание  Назад  Вперед





Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий