Арифметические команды. Команды сложения и вычитания. Установка флагов. Команды сдвига. Быстрое умножение. Команды умножения и деления. Сложение и вычитание чисел с произвольной точностью. Команды десятичной арифметики. Трансляция арифметических выражений. Идентификация математических операторов.
Операции
Расшифровка
Значение
Формат вызова
флаги
сложение/вычитание
CF, PF, AF, ZF, SF,OF
add
сложение
add приемник,источник
CF, PF, AF, ZF, SF, OF.
adc
add with carry
Сложение с учетом значения флажка CF
adc приемник,источник
PF, AF, ZF, SF, OF.
inc
increment
Увеличение на 1
inc приемник
PF, AF, ZF, SF, OF.
dec
decrement
Уменьшение на 1
dec приемник
CF, PF, AF, ZF, SF, OF.
neg
negate
Изменяет знак операнда
neg приемник
CF, PF, AF, ZF, SF, OF.
xadd
exchange and add
Сложение и смена значений
add приемник,источник
CF, PF, AF, ZF, SF, OF.
sub
subtract
Вычитание
sub приемник,источник
CF, PF, AF, ZF, SF, OF.
sbb
subtract with borrow
Для учета заема из старшего бита
sbb приемник,источник
CF и OF
умножение/деление
CF, PF, AF, ZF, SF, OF.
mul
multiply
Беззнаковое умножение eax/ax/al на источник
mul источник
все, но полезные CF и OF
imul
integer multiply
Знаковое умножение
Результат заноситься в:
Байт ax
Слово dx:ax
Двойное слов edx:eax
imul источник
imul приемник,источник
imul приемник,операнд1,операнд2
все, но полезные CF и OF
div
divide
Беззнаковое деление
div источник
-
idiv
integer divide
Знаковое деление
idiv источник
-
cbw
convert byte to word
преобразует байт в слово
cbw
-
cwd
convert word to dword
преобразует слово в двойное
слово
cwd
-
cwde
convert word to dword extended
преобразует слово в
двойное слово расширенное
cwde
-
установка флагов
-
cdq
convert dword to quadword
преобразует двойное слово в учетверенное слово
cdq
clc
clear carry flag
сбрасывает CF в 0
clc
stc
set carry flag
устанавливает CF в 1
stc
cmc
complement carry flag
инвертирует флаг CF
cmc
cld
clear direction flag
сбрасывает DF в 0
cld
std
set direction flag
устанавливает DF в 1
std
cli
clear interrupt enable flag
сбрасывает IF в 0
cli
sti
set interrupt enable flag
устанавливает IF в 1
sti
команды сдвигов
sal
shift arithmetic left
арифметический сдвиг влево
sal приемник,счетчик
sar
shift arithmetic right
арифметический сдвиг вправо
sar приемник,счетчик
shl
shift logical left
логический сдвиг влево
shl приемник,счетчик
shr
shift logical right
логический сдвиг вправо
shr приемник,счетчик
shld
shift left double
реализует сдвиг повышенной точности влево
shld операнд1, операнд2, счетчик
shrd
shift right double
реализует сдвиг повышенной точности вправо
shrd операнд1,операнд2, счетчик
rol
rotate left
реализует циклический сдвиг влево
rol приемник,счетчик
ror
rotate right
реализует циклический сдвиг вправо
ror приемник,счетчик
rcl
rotate through carry left
предназначена для циклического сдвига через флаг CF влево
rcl приемник,источник
rcr
rotate through carry right
предназначена для циклического сдвига через флаг CF вправо