userL 发表于 2020-2-17 15:50:41

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

HEAVENHXF 发表于 2021-1-12 16:36:10

例题1001/100
书上写的:mov bl,100
是不是写错了呀?

HEAVENHXF 发表于 2021-1-12 16:42:01

如word途中,这是100001/100例题,为什么我的答案他不对呢
页: [1]
查看完整版本: div指令