Если адрес — 32-разрядный, а приёмник — 16-разрядный, старшая половина вычисленного адреса теряется. Если адрес — 16-разрядный, а приёмник — 32-разрядный, вычисленный адрес дополняется нулями.
Примечание. Команду LEA
часто используют для быстрых арифметических вычислений, например, умножения:
LEA BX, [EBX+EBX*4] ; BX=EBX´5
Эта команда меньше, чем соответственный набор команд MOV
и ADD
и не изменяет флаги.
Все команды арифметических операций, кроме команд умножения и деления, изменяют флаги состояния в соответствии с назначением каждого из них.
ADD приёмник, источник сложение 8086
Складывает приёмник и источник, помещает сумму в приёмник. Содержимое источника не меняется.
Источником может быть:
— непосредственный операнд;
— регистр общего назначения;
— память.
Приёмником может быть:
— регистр общего назначения;
— память.
Память не может использоваться одновременно и как приёмник, и как источник.
Команда не различает числа со знаком и без такового. В зависимости от типа чисел анализируют разные флаги: CF — для чисел без знака, OF и SF —со знаком.
ADC приёмник, источник сложение с учётом переноса 8086
Команда аналогична ADD
,
но складывает приёмник, источник и флаг CF.
Примечание. Команда ADC
предназначена для использования в паре с командой для сложения чисел
повышенного размера в несколько приёмов, которые нельзя сложить одной командой.
Например, для сложения двух 64-разрядных чисел, одно из которых находится в
паре регистров EDX:EAX, а
другое — в EBX:ECX, можно
воспользоваться следующей парой команд:
ADD EAX, ECX
ADC EDX, EBX
Если при сложении младших двойных слов произошёл перенос
из старшего разряда, то установившийся при этом CF
будет учтён следующей командой ADC
.
XADD операнд1, операнд2 обменять между собой и сложить 80486
Складывает операнды аналогично ADD,
но содержимое первого операнда помещается во второй операнд, а сумма — в первый
операнд. Результат получается такой же, как от пары команд XCHG
и ADD
с теми же операндами, откуда и происходит название.
Источником может быть регистр общего назначения.
Приёмником может быть:
— регистр общего назначения;
— память.
SUB приёмник, источник вычитание 8086
Вычитает источник из приёмника и помещает разность в
приёмник. Правила для выбора приёмника и источника — такие же, как для команды ADD
. Точно так же, как и команда ADD
, команда SUB
используется и для чисел со знаком, и для чисел без знака, для чего
используются разные флаги состояния.
SBB приёмник, источник вычитание с займом 8086
Вычитает из приёмника значение источника и значение флага переноса и помещает результат в приёмник.
Примечание. Назначение команды SBB
аналогично назначению
команды ADC
. Например, для вычитания
64-разрядных чисел в EDX:EAX и EBX:ECX, можно воспользоваться
следующей парой команд:
ADD EAX, ECX
ADC EDX, EBX
MUL источник умножение чисел без знака 8086
Содержимое источника умножается на содержимое AL, AX или EAX соответственно размеру операнда. Результат располагается в AX, DX:AX или EDX:EAX соответственно.
Источником может быть:
— регистр общего назначения;
— память.
Флаги CF и OF сбрасываются тогда и только тогда, когда размер результата не превышает размера множителей, то есть результат помещается в младшей половине приёмника. Иначе флаги устанавливаются.
Флаги AF, PF, SF, ZF не определены.
IMUL источник умножение чисел со знаком 8086
IMUL приёмник, источник то же 80386
IMUL приёмник, источник1, источник2 то же 80186
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.