div指令
div指令中有32位除16位,分别用32位寄存器储存(所给的寄存器都是16位寄存器),所以用dx储存高16位,ax储存低16位。
用bx储存除数,所得结果ax中储存的是商,dx中储存的是余数。
例题:100001/100
mov ax,86a1h //低位16位
mov dx,1h //高位16位
mov bx,100
div bx
ax=/bx的商
dx=/bx的余数
所得结果: ax = 03e8h , dx = 1
16位除8位,利用16位寄存器和8位寄存器,被除数用ax储存,除数用bl储存
al储存商,ah储存余数
例题: 1001/100
mov ax,1001
mov bx,100
div bx
ah = 1,al = A,ax=010Ah
字节型数据
div byte ptrds:
al = ax/(ds*16+bx+si+8)的商
ax = ax/ (ds*16+bx+si+8) 的余数
字型数据
div word ptr ds:
ax = (dx*10000h+ax)/(ds*16+bx+si+8)的商
dx = (dx*10000h+ax)/(ds*16+bx+si+8)的余数
例题1001/100
书上写的:mov bl,100
是不是写错了呀? 如word途中,这是100001/100例题,为什么我的答案他不对呢
页:
[1]