Арифметические операции
ADD Сложение
Признаки: O D I T S Z A P C
* * * * * *
Команда: ADD destination, source.
Логика: destination=destination+source.
ADC Сложение с переносом
Признаки: O D I T S Z A P C
* * * * * *
Команда: ADC destination,source.
Логика: destination=destination+source+CF.
INC Инкремент
Признаки: O D I T S Z A P C
* * * * *
Команда: INC destination.
Логика: destination=destination+1.
SUB Вычитание
Признаки: O D I T S Z A P C
* * * * * *
Команда: SUB destination, source.
Логика: destination=destination-source.
SBB Вычитание с заемом
Признаки: O D I T S Z A P C
* * * * * *
Команда: SBB destination, source.
Логика: destination=destination-source-CF.
DEC Декремент
Признаки: O D I T S Z A P C
* * * * * *
Команда: DEC destination.
Логика: destination=destination-1.
MUL Умножение без учета знака
Признаки: O D I T S Z A P C
* ? ? ? ? *
Команда: MUL source.
Логика: AX=AL*source, если операнд source ‑ байт
или
DX:AX=AX*source, если операнд source ‑ слово.
IMUL Умножение с учетом знака
Признаки: O D I T S Z A P C
* ? ? ? ? *
Команда: IMUL source.
Логика: AX=AL*source, если операнд source ‑ байт
или
DX:AX=AX*source, если операнд source ‑ слово.
DIV Деление без учета знака
Признаки: O D I T S Z A P C
? ? ? ? ? ?
Команда: DIV source.
Логика: AL=AX/source
AH=remainder, если операнд source ‑ байт
или
AX=DX:AX/source
DX=remainder, если операнд source ‑ слово.
IDIV Деление с учетом знака
Признаки: O D I T S Z A P C
? ? ? ? ? ?
Команда: IDIV source.
Логика: AL=AX/source
AH=remainder, если операнд source ‑ байт
или
AX=DX:AX/source
DX=remainder, если операнд source ‑ слово.
CBW Преобразование байта в слово
Признаки не меняются.
Команда: CBW.
Логика: if (AL<80h) then
AH=0
else
AH=FFh.
CWD Преобразование слова в двойное слово
Признаки не меняются.
Команда: CWD.
Логика: if (AX<8000h) then
DX=0
else
DX=FFFFh.
NEG Получение дополнительного кода
Признаки: O D I T S Z A P C
* * * * * *
Команда: NEG destination.
Логика: destination=-destination; дополнительный код.
КОМАНДЫ ИТЕРАЦИИ
LOOP Переход по счетчику
Признаки не меняются.
Команда: LOOP short-label.
Логика: CX=CX-1
if (CX<>0) then JMP short-label.
LOOPE Переход пока равно
Признаки не меняются.
Команда: LOOPE short-label.
Логика: CX=CX-1
if (CX<>0) and (ZF=1) then JMP short-label.
LOOPNE Переход пока не равно
Признаки не меняются.
Команда: LOOPNE short-label.
Логика: CX=CX-1
if (CX<>0) and (ZF=0) then JMP short-label.
LOOPNZ Переход пока не ноль
Признаки не меняются.
Команда: LOOPNZ short-label.
LOOPNZ синоним LOOPNE. См. описание LOOPNE.
LOOPZ Переход пока ноль
Признаки не меняются.
Команда: LOOPZ short-label.
LOOPZ синоним LOOPE. См. описание LOOPE.
Команды коррекции
DAA Десятичная коррекция при сложении
Команда: DAA.
DAS десятичная коррекция при вычитании
Команда: DAS.