本帖最后由 mnb1237273 于 2012-12-04 14:20:27 编辑 书上讲解DVI除法指令的时候有这样一个例题:
编程,利用除法指令计算100001/100。
因为要分别为DX和AX赋100001的高16位值和低16位值,所以应先将100001表示为16进制形势:186A1H.程序如下:
mov dx,1
mov ax,86A1H ;(dx)*10000h+(ax)=100001
mov bx,100
div bx
程序里面的第二句后面的注释我不懂。为什么dx要乘以16进制的10000而不是1000或者100????
------最佳解决方案--------------------------------------------------------
都使用10进制理解,可能好懂些
(dx)*10000h+(ax)=100001
就是
dx*65536+ax=1*65536+34465=100001
dx的1就表示65536,2就表示65536*2,3就。。。。
------其他解决方案--------------------------------------------------------
“10000而不是1000或者100?”,这里的 10000 是 10000h,十六进制的,不是十进制的。因为是高 16 位值,当然是 10000h 了,0-0FFFFh 在低 16 位的 ax 里嘛。
------其他解决方案--------------------------------------------------------
因为是16进纸所以是1000h 还是没明白哦???
------其他解决方案--------------------------------------------------------
感谢。这下明白了。。