Логические команды
Логические команды представлены в
таблице 6.3.
Таблица 6.3. Логические
команды.
Мнемокод
/ Операнды
|
Описание
|
Основные команды
|
and
назначение, источник
|
логическое И
|
not
назначение
|
логическое НЕ
|
or
назначение,
источник
|
логическое ИЛИ
|
test
назначение,
источник
|
проверка бита
|
xor
назначение,
источник
|
логическое
исключающее ИЛИ
|
Сдвиговые
команды
|
rcl
назначение,
количество
|
циклический
сдвиг влево через флаг переноса
|
rcr
назначение,
количество
|
циклический
сдвиг вправо через флаг переноса
|
rol
назначение,
количество
|
циклический
сдвиг влево
|
ror
назначение,
количество
|
циклический
сдвиг вправо
|
sal
назначение,
количество
|
арифметический
сдвиг влево
|
sar
назначение,
количество
|
арифметический
сдвиг вправо
|
shl
назначение,
количество
|
сдвиг влево
|
shr
назначение,
количество
|
сдвиг вправо
|
Команда test
производит логическое умножение (and)
операндов, не изменяя их, проводит
установку флагов.
Команда sal
работает по следующему алгоритму
работы:
сдвиг всех битов операнда влево на один
разряд, при этом выдвигаемый слева бит
становится значением флага переноса
cf;
одновременно справа в операнд вдвигается
нулевой бит;
указанные выше два действия повторяются
количество раз, равное значению второго
операнда
Команда sar
работает по следующему алгоритму
работы:
сдвиг всех битов операнда вправо на
один разряд, при этом выдвигаемый справа
бит становится значением флага переноса
cf;
обратите внимание: одновременно слева
в операнд вдвигается не нулевой бит, а
значение старшего бита операнда, то
есть по мере сдвига вправо освобождающиеся
места заполняются значением знакового
разряда. По этой причине этот тип сдвига
и называется арифметическим;
указанные выше два действия повторяются
количество раз, равное значению второго
операнда.
7