被除数÷除数=商...余数
被除数是16位,除数应为8位
被除数
-------------
AX
进行除法运算之后:
AX
-------------
AH | AL
余数 商
被除数是32位,除数应为16位
被除数
-------------
高16位|低16位
DX AX
进行除法运算之后:
DX AX
-------------
余数 商
除数:reg 或者 内存单元
被除数16位,除数8位
div byte ptr ds:[0]
商AL (al)=(ax)/((ds)*16+0)
余数AH (ah)=(ax)/((ds)*16+0)
被除数32位,除数16位
div word ptr es:[0]
商AX (ax)=[(dx)*10000H+(ax)]/((es)*16+0)
余数DX (dx)=[(dx)*10000H+(ax)]/((es)*16+0)
编程,利用除法指令进行计算
进制转换
被除数(32位)÷ 除数(16位)
100001/100
- 100001D > 65535D
- 100001D 十进制 000186A1H十六进制
- DX 存放高16位 0001H
- AX 存放低16位 86A1H
打开debug,用A命令逐条指令输入
-
debug 【A命令】默认数据是十六进制
mov dx,0001
mov ax,86A1
mov bx,0064
div bx
查看运算结果
被除数(16位)÷ 除数(8位)
1001/100
- 1001D
- 1001D 十进制 03E9H十六进制
- AX直接存放被除数 03E9
打开debug,用A命令逐条指令输入
-
debug 【A命令】默认数据是十六进制
mov ax,03e9
mov bl,64
div bl