Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

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




Команды умножения и деления.

mul множитель_1

Операция умножения двух целых чисел без учета знака. Команда mul выполняет целочисленное умножение операндов без учета их знаковых разрядов. Для этой операции необходимо наличие двух операндов-сомножителей, размещение одного из которых фиксировано, а другого задается операндом в команде. Контролировать размер результата удобно используя флаги cf и of.

imul множитель_1 imul множ_1, множ_2

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

div делитель

Выполнение операции деления двух двоичных беззнаковых значений. Команда выполняет целочисленное деление операндов с выдачей результата деления в виде частного и остатка от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

idiv делитель

Операция деления двух двоичных значений со знаком. Команда выполняет целочисленное деление операндов с учетом их знаковых разрядов. Результатом деления являются частное и остаток от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

Команды распространения знака.

cbw cwde

Расширение операнда со знаком. cbw — при работе команда использует только регистры al и ax. cwde — при работе команда использует только регистры ax и eax. Данные команды используются для приведения операндов к нужной размерности с учетом знака. Такая необходимость может, в частности, возникнуть при программировании арифметических операций.

cwd

Расширение слова со знаком до размера двойного слова со знаком. Команда cwd используется для расширения значения знакового бита в регистре ax на биты регистра dx. Данную операцию, в частности, можно использовать для подготовки к операции деления, для которой размер делимого должен быть в два раза больше размера делителя, либо для приведения операндов к одной размерности в командах умножения, сложения, вычитания.

 

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 операнд, количество_сдвигов

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

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...