Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы_сиппо.doc
Скачиваний:
18
Добавлен:
22.04.2019
Размер:
230.91 Кб
Скачать

8. Команды работы с битами. Логические команды. Операции сдвига.

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

bsf результат,источник

Для проверки наличия единичных битов в операнде источник. Команду bsf используют при работе на битном уровне для определения позиции в операнде крайних справа единичных битов.

bsr результат,источник

Проверка наличия единичных битов в операнде источник. Команду bsr используют при работе на битном уровне для определения позиции крайних слева единичных битов.

bt источник,индекс

Извлечение значения заданного бита в флаг cf. Команду bt используют для определения значения конкретного бита в операнде источник.

btr источник,индекс

Извлечение значения заданного бита в флаг cf и изменение его значения на нулевое.

bts источник,индекс

Извлечение значения заданного бита операнда в флаг cf и установка этого бита в единицу.

btc источник,индекс

Извлечение значения заданного бита в флаг cf и изменение его значения в операнде на обратное.

Логические команды.

and приемник,источник

Операция логического умножения для операндов приемник и источник размерностью байт, слово или двойное слово. Команда and используется для логического умножения двух операндов. Результат операции помещается по адресу первого операнда. Эту команду удобно использовать для принудительной установки или сброса определенных битов операнда.

or приемник,маска

Операция логического ИЛИ над битами операнда назначения. Команду or можно использовать для работы с операндами на уровне битов. Типичное использование команды — установка определенных разрядов первого операнда в единицу.

xor приемник,источник

Операция логического исключающего ИЛИ над двумя операндами размерностью байт, слово или двойное слово. Команда xor используется для выполнения операции логического исключающего ИЛИ двух операндов. Результат операции помещается в первый операнд. Эту операцию удобно использовать для инвертирования или сравнения определенных битов операндов.

not источник

Инвертирование всех битов операнда источник. Команду not можно использовать для изменения байта, выполняющего роль некоторого флага, с целью отслеживания некоторых логических условий в программе.

Операции сдвига.

shl операнд,количество_сдвигов

Логический сдвиг операнда влево. Команда shl используется для сдвига разрядов операнда влево.

shr операнд,кол-во_сдвигов

Логический сдвиг операнда вправо. Команда shr используется для логического сдвига разрядов операнда вправо.

sal операнд,количество_сдвигов

Арифметический сдвиг операнда влево.

sar операнд,количество_сдвигов

Арифметический сдвиг операнда вправо.

9. Команды передачи управления. Команда безусловного перехода. Команды условного перехода.

Команды передачи управления.

Команда безусловного перехода.

jmp метка

Используется в программе для организации безусловного перехода как внутри текущего сегмента команд, так и за его пределы. При определенных условиях в защищенном режиме работы команда jmp может использоваться для переключения задач. Команду jmp применяют для осуществления ближних и дальних безусловных переходов без сохранения контекста точки перехода.

Команды условного перехода.

Команды для работы с беззнаковыми числами: JA/JNBE – переход, если больше; JAE/JNB/JNC - переход, если больше или равно; JB/JNAE/JC - переход, если меньше; JBE/JNA - переход, если меньше или равно.

Команды для работы со знаковыми числами: JG/JNLE - переход, если больше; JGE/JNL - переход, если больше или равно; JL/JNGE - переход, если меньше; JLE/JNG - переход, если меньше или равно; JNS - переход, если больше нуля; JS - переход, если меньше нуля.

Команды, общие для знаковых и беззнаковых чисел: JE/JZ - переход, если равно переход, если ноль; JNE/JNZ - переход, если не равно переход, если не ноль.