DIV – деление беззнаковое
F6 /6 | DIV r/m8 | AL:= AX DIV r/m8
AH:= AX MOD r/m8 | |||
F7 /6 |
| DIV 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).
Флажки не изменяются.