数据处理的两个基本问题三

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) 余数

你可能感兴趣的:(数据处理的两个基本问题三)