Системное программное обеспечение. Рощин А.В. - 24 стр.

UptoLike

Составители: 

24
Команды работы с битами
Команды работы с битами могут быть разбиты на три группы:
логические команды, команды сдвига и команды циклического сдвига.
Логические операции
NOT Инверсия байта или слова
AND ОперацияИнад байтами или словами
OR ОперацияИЛИнад байтами или словами
XOR ОперацияИСКЛЮЧ. ИЛИнад байтами или словами
TEST Проверка байта или слова
Команды сдвига
SHL/SAL Логический/арифметич. сдвиг влево байта или слова
SHR Логический сдвиг вправо байта или слова
SAR Арифметический сдвиг вправо байта или слова
Команды циклического сдвига
ROL Циклический сдвиг влево байта или слова
ROR Циклический сдвиг вправо байта или слова
RCL Цикл. сдвиг влево байта или слова через разряд переноса
RCR Цикл. сдвиг вправо байта или слова через разр. переноса
Логические операции
К логическим операциям относятся булевы операции "НЕ", "И",
"ИЛИ" и "ИСКЛЮЧАЮЩЕЕ ИЛИ". Кроме того к ним относится также
команда "ТЕСТ", которая устанавливает флаги, но не изменяет ни одного
из операндов.
Команды AND ("И"), OR ("ИЛИ"), XOR ("ИСКЛЮЧАЮЩЕЕ ИЛИ")
и TEST ("ТЕСТ") воздействуют на флаги следующим образом:
Флаги переполнения (OF) и переноса (CF) после
логических
операций всегда сброшены, а флаг дополнительного переноса (AF) всегда
неопределен.
Флаги знака (SF), нуля (ZF) и четности (PF) всегда отражают
результат логической операции и могут быть проверены последующей
командой условного перехода. Интерпретация этих флагов такая же, как и
после выполнения арифметических операций. Флаг знака (SF) взводится
при единичном старшем бите результата и сбрасываетсяпри нулевом
.
Флаг нуля (ZF) взводится при нулевом результате операции и
сбрасывается в противном случае. Флаг четности (PF) взводится, если
младший байт результата имеет четное число единиц, и сбрасывается при
нечетном числе единиц.
Внимание! Операция NOT ("НЕ") не влияет на флаги.
                                   24



       Команды работы с битами

     Команды работы с битами могут быть разбиты на три группы:
логические команды, команды сдвига и команды циклического сдвига.

                         Логические операции
NOT          Инверсия байта или слова
AND          Операция “И” над байтами или словами
OR           Операция “ИЛИ” над байтами или словами
XOR          Операция “ИСКЛЮЧ. ИЛИ” над байтами или словами
TEST         Проверка байта или слова
                            Команды сдвига
SHL/SAL      Логический/арифметич. сдвиг влево байта или слова
SHR          Логический сдвиг вправо байта или слова
SAR          Арифметический сдвиг вправо байта или слова
                     Команды циклического сдвига
ROL          Циклический сдвиг влево байта или слова
ROR          Циклический сдвиг вправо байта или слова
RCL          Цикл. сдвиг влево байта или слова через разряд переноса
RCR          Цикл. сдвиг вправо байта или слова через разр. переноса

       Логические операции

      К логическим операциям относятся булевы операции "НЕ", "И",
"ИЛИ" и "ИСКЛЮЧАЮЩЕЕ ИЛИ". Кроме того к ним относится также
команда "ТЕСТ", которая устанавливает флаги, но не изменяет ни одного
из операндов.
      Команды AND ("И"), OR ("ИЛИ"), XOR ("ИСКЛЮЧАЮЩЕЕ ИЛИ")
и TEST ("ТЕСТ") воздействуют на флаги следующим образом:
      Флаги переполнения (OF) и переноса (CF) после логических
операций всегда сброшены, а флаг дополнительного переноса (AF) всегда
неопределен.
      Флаги знака (SF), нуля (ZF) и четности (PF) всегда отражают
результат логической операции и могут быть проверены последующей
командой условного перехода. Интерпретация этих флагов такая же, как и
после выполнения арифметических операций. Флаг знака (SF) взводится
при единичном старшем бите результата и сбрасывается – при нулевом.
      Флаг нуля (ZF) взводится при нулевом результате операции и
сбрасывается в противном случае. Флаг четности (PF) взводится, если
младший байт результата имеет четное число единиц, и сбрасывается при
нечетном числе единиц.
      Внимание! Операция NOT ("НЕ") не влияет на флаги.