SUB op,1
В этих командах допустимы следующие типы операнда:
r8, m8, r16, m16
Выгода от команд INC и DEC в том, что они занимают меньше места в памяти и выполняются быстрее, чем соответствующие команды ADD и SUB.
3. Команды умножения и деления
3.1 Команды умножения
Умножение целых чисел без знака: MUL op
Умножение целых чисел со знаком: IMUL op
Умножение байтов: AX:=AL*op (op: r8, m8)
Умножение слов: (DX,AX):=AX*op (op: r16, m16)
Пример.
N DB 10
…
MOV AL,2
MUL N ; AX=2*10=20=0014h: AH=00h, AL=14h
3.2 Команды деления
Деление целых чисел без знака: DIV op
Деление целых чисел со знаком: IDIV op
Деление слова на байт:
AH:=AX mod op, AL:=AX div op (op: r8, m8)
Деление двойного слова на слово:
DX:=(DX, AX) mod op, AX:=(DX, AX) div op (op: r16, m16)
4. Изменение размера числа
Расширение байта до слова (convert byte to word): CBW
У этой команды местонахождение операнда и результата фиксировано: операнд всегда берется из AL, а результат всегда записывается в AX. Команда записывает в регистр AH число 00h или 0FFh в зависимости от знака числа из регистра AL.
Расширение слова до двойного слова (convert word to double): CWD
При делении также возникает необходимость расширения слова, находящегося в регистре AX, до двойного слова, занимающего два регистра – DX и AX. Команда записывает в регистр DX число 0000h или 0FFFFh в зависимости от знака числа из регистра AX.
Дата добавления: 2015-10-09; просмотров: 539;