Команды сложения и вычитания. Команды умножения и деления. Команды распространения знака. — КиберПедия 

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Команды сложения и вычитания. Команды умножения и деления. Команды распространения знака.

2023-01-01 33
Команды сложения и вычитания. Команды умножения и деления. Команды распространения знака. 0.00 из 5.00 0 оценок
Заказать работу

Команды сложения и вычитания.

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

Для сложения двух чисел предназначена команда ADD. Она работает как с числами со знаком, так и с числами без знака (это особенность дополнительного кода). Операнды должны иметь одинаковый размер (нельзя складывать 16- и 8-битное значение). Результат помещается на место первого операнда.

inc операнд

Увеличивает значение операнда в памяти или регистре на 1. Команда используется для увеличения значения байта, слова, двойного слова в памяти или регистре на единицу. При этом команда не воздействует на флаг cf.

sub операнд_1,операнд_2

операнд_1=операнд_2-операнд_1

Целочисленное вычитание. Команда sub используется для выполнения вычитания целочисленных операндов или для вычитания младших частей значений многобайтных операндов.

sbb операнд_1,операнд_2

Целочисленное вычитание с учетом результата предыдущего вычитания командами sbb и sub (по состоянию флага переноса cf). Команда sbb используется для выполнения вычитания старших частей значений многобайтных операндов с учетом возможного предыдущего заема при вычитании младших частей значений этих операндов.

dec операнд

Уменьшение значения операнда в памяти или регистре на 1. Команда dec используется для уменьшения значения байта, слова, двойного слова в памяти или регистре на единицу. При этом заметьте то, что команда не воздействует на флаг cf.

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

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. Данную операцию, в частности, можно использовать для подготовки к операции деления, для которой размер делимого должен быть в два раза больше размера делителя, либо для приведения операндов к одной размерности в командах умножения, сложения, вычитания.

 

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

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

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

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

 


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

История создания датчика движения: Первый прибор для обнаружения движения был изобретен немецким физиком Генрихом Герцем...

Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.013 с.