Описание процессора i8086 для программиста


IDIV – деление знаковое


F6 /7

IDIV r/m8

AL:= AX DIV r/m8

AH:= AX MOD r/m8

F7 /7

IDIV r/m16

AX:= DX, AX

DIV r/m16

DX:= DX, AX MOD r/m16

Описание.

Эта команда производит целочисленное деление двух двоичных чисел со знаком.

Делимое имеет размер 16 или 32 разряда. В первом случае оно располагается в регистре AX, во втором занимает регистровую пару DX:AX (старшая часть – в регистре DX, младшая – в регистре AX). Делитель размещается в регистре или ячейке памяти, определяемой байтом ModRegR/M. При 16-разрядном делимом делитель имеет размер байт, а при 32-разрядном делимом – слово.

Частное и остаток имеют разрядность, совпадающую с разрядностью делителя, т.е. в два раза меньше, чем у делимого. Знак остатка всегда совпадает со знаком делимого. В операции деления 16-разрядного числа на 8-разрядное частное располагается в регистре AL, остаток – в регистре AH. При делении 32-разрядного числа на 16-разрядное частное будет находиться в регистре AX, а остаток – в регистре DX.

Если производится попытка деления на 0 или частное не помещается в отведённую разрядность, вырабатывается прерывание по ошибке деления (вектор 0).

Флажки не изменяются.




- Начало -  - Назад -  - Вперед -