Система команд
Битовые команды
Мнемоника | Формат | Комментарий |
---|---|---|
Логические команды | ||
AND | AND приемник, источник | Выполнить AND |
OR | OR приемник, источник | Выполнить OR |
XOR | XOR приемник, источник | Выполнить XOR |
NOT | NOT приемник | Выполнить NOT |
TEST | TEST приемник, источник | Проверить |
Сдвиговые команды | ||
SAL/SHL | SAL приемник, счетчик | Сдвинуть влево |
SAR/SHR | SAR приемник, счетчик | Сдвинуть вправо |
ROL | ROL приемник, счетчик | Сдвинуть влево циклически |
ROR | ROR приемник, счетчик | Сдвинуть вправо циклически |
RCL | RCL приемник, счетчик | Сдвинуть влево с переносом |
RCR | RCR приемник, счетчик | Сдвинуть вправо с переносом |
Битовые команды используются при исчислении логических выражений, а также в тех случаях, когда необходимо изменить отдельные разряды операнда. Логические команды AND, OR, XOR и NOT эквивалентны соответствующим операциям Турбо Паскаля в случае, когда операндами являются целочисленные выражения. Команда TEST выполняет целочисленную операцию поразрядного суммирования AND, но не изменяет значения операндов, а лишь устанавливает флаги в соответствии со значением результата сравнения: обнуляет CF и OF, изменяет PF, ZF, SF и не меняет AF (флаг ZF установится в 1 в том случае, когда оба операнда содержат по единице хотя бы в одном соответствующем разряде).
Команды сдвига SHL/SHR эквивалентны одноименным операциям Турбо Паскаля и отличаются от команд циклического сдвига ROLIROR тем, что вытесненные в ходе их выполнения значащие разряды теряются, в то время как при циклическом сдвиге эти разряды появляются "с другой стороны". Например, если выполнить фрагмент:
mov al,1 {Загружаем в AL единицу} shr al,1 {Сдвигаем вправо,на 1 разряд}
Регистр AL будет содержать 0 (вытесненная вправо единица будет помещена в CF), в то время как после замены команды SHR на ROR в нем будет значение $80=128 (вытесненная единица будет помещена в старший бит регистра).
Заметим, что счетчиком в командах сдвига может быть цифра 1 или количество сдвигов, указываемое в регистре CL.