Команды пересылки данных

Операции Расшифровка Значение Формат вызова
Пересылки общего назначения
mov Пересылка данных mov приемник, источник
push Занесение в стек push источник
pop Извлечение из стека pop приемник
xchg Поменять местами xchg приемник, источник
movsx Пересылка с учетом знака movsx приемник,источник
movzx Пересылка без учета знака movzx приемник,источник
Пересылки с участием аккумулятора
in Ввод из порта in аккумулятор, порт
out Вывод в порт out порт, аккумулятор
xlat Трансляция xlat источник
Пересылки адреса операнда
lea загрузить исполнительный адрес lea приемник, источник
lds загрузить указатель в DS lds источник
les загрузить указатель в ES les источник
Пересылки флагов
lahf загрузить АН флагами lahf
sahf запомнить АН в регистре F sahf
Push занести в стек push источник
Pop извлечь из стека pop приемник

Арифметические команды. Команды сложения и вычитания. Установка флагов. Команды сдвига. Быстрое умножение. Команды умножения и деления. Сложение и вычитание чисел с произвольной точностью. Команды десятичной арифметики. Трансляция арифметических выражений. Идентификация математических операторов.

Операции Расшифровка Значение Формат вызова флаги
сложение/вычитание 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 вправо rcr приемник,источник  
двоично-десятичная арифметика  
aaa ASCII adjust for add коррекция неупакованного BCD-сложения aaa  
aas ASCII adjust for subtract коррекция неупакованного BCD-вычитания aas  
aam ASCII adjust for multiply коррекция неупакованного BCD-умножения aam  
aad ASCII adjust for divide коррекция неупакованного BCD-деления aad  
daa decimal adjust for add коррекция результата сложения неупакованного BCD daa  
das decimal adjust for subtract коррекция результата вычитания неупакованного BCD das  
           

Наши рекомендации