div:
被除数/除数
被除数分为16位(AX),32位(DX+AX);
除数分为8位,16位
存放结果:如果结果是8位(商放在AL,余数放在AH);如果结果是16位(商放在AX,余数放在DX)
div指令格式:
div register
div 内存单元
如:mov dx,0001H
mov ax,86A1H;
mov bx,100
div bx //相当于(dx+ax)/bx 186a1/64,结果为商:ax =03e8;余数:dx =1
如:mov ax,86
mov bx,4
div bx //结果为:ax=21;dx=2 实验结果和上面的有出入,待修改,好像是商为4位结果存放在ah,al中
附:div指令示例
div byte ptr ds:[0]
含义为:
(al) = (ax) / ((ds)*16+0) 商
(ah) = (ax) / ((ds)*16+0) 余数
div word ptr es:[0]
含义为:
(ax) = [(dx)*10000H+(ax)]/((ds)*16+0) 商
(dx) = [(dx)*10000H+(ax)]/((ds)*16+0) 余数
div byte ptr [bx+si+8]
(al)= (ax)/((ds)*16+(bx)+(si)+8) 商
(ah)=(ax)/((ds)*16+(bx)+(si)+8) 余数
div word ptr [bx+si+8]
(ax)=[(dx)*10000H+(ax)]/((ds)*16+(bx)+(si)+8) 商
(dx)=[(dx)*10000H+(ax)]/((ds)*16+(bx)+(si)+8) 余数