Skip to content

Арифметические команды

Ivan Bogatyrev edited this page Jun 11, 2023 · 2 revisions

Арифметические команды

Команды целочисленной арифметики

ADD <приёмник>, <источник>

Сложение приемника и источника. Сумма - в приемник, источник не изменяется.

  • Приемник - переменная (область памяти), РОН (регистр общего назначения)
  • Источник - то же самое, что приемник или непосредственный операнд (например, число)

SUB <приёмник>, <источник>

Вычитание, всё точно так же как и в ADD. Отрицательные числа можно отслеживать с помощью флага SF.

MUL <источник>

Умножение без знака.

  • Источник - область памяти, РОН.

Умножаются источник и AL/AX, в зависимости от размера источника. Результат помещается в AX либо DX:AX.
Если источник - байт, то AX = AL * источник. Если источник - слово, то DX:AX = AX * источник.

DIV <источник>

Деление без знака.

  • Источник - область памяти, РОН.

Деление AL/AX на источник. Результат помещается в AL/AX, остаток - в AH/DX.
Если источник - байт, то AL = AX / источник. Если источник - слово, то AX = DX:AX / источник.

Ещё есть команды деления/умножения со знаком: IDIV, IMUL

DEC <операнд>, INC <операнд>

  • INC - инкремент.
  • DEC - декремент.

Обе команды работают быстрее ADD и SUB соответственно, потому что занимают 1 байт, а не 3.
INC и DEC, в отличие от ADD и SUB, не затрагивают флаг CF.

Clone this wiki locally