Справочник по языку Ассемблера IBM PC

     

IDIV


(Integer DIVide)

Деление целочисленное со знаком

 

Схема команды:  idiv делитель 

Назначение: операция деления двух двоичных значений со знаком.


Алгоритм работы:


Для команды необходимо задание двух операндов — делимого и делителя. Делимое задается неявно, и размер его зависит от размера делителя, местонахождение которого указывается в команде:

если делитель размером в байт, то делимое должно быть расположено в регистре ax. После операции частное помещается в al, а остаток — в ah;

если делитель размером в слово, то делимое должно быть расположено в паре регистров dx:ax, причем младшая часть делимого находится в ax. После операции частное помещается в ax, а остаток — в dx;



если делитель размером в двойное слово, то делимое должно быть расположено в паре регистров edx:eax, причем младшая часть делимого находится в eax. После операции частное помещается в eax, а остаток — в edx;

Остаток всегда имеет знак делимого. Знак частного зависит от состояния знаковых битов (старших разрядов) делимого и делителя.


Состояние флагов после выполнения команды:

11 07 06 04 02 00
OF SF ZF AF PF CF
? ? ? ? ?

Применение:


Команда выполняет целочисленное деление операндов с учетом их знаковых разрядов. Результатом деления являются частное и остаток от деления. При выполнении операции деления возможно возникновение исключительной ситуации: 0 — ошибка деления. Эта ситуация возникает в одном из двух случаев: делитель равен 0 или частное слишком велико для его размещения в регистре eax/ax/al.

;деление слов         mov     ax,1045 ;делимое         mov     bx,587  ;делитель         cwd             ;расширение делимого dx:ax         idiv    bx      ;частное в ax, остаток в dx         

См. также: урок 8, приложение 7 и команду



Содержание раздела