当前位置: 代码迷 >> 汇编语言 >> 新手学汇编遇到有关问题 求指教
  详细解决方案

新手学汇编遇到有关问题 求指教

热度:2029   发布时间:2013-02-26 00:00:00.0
新手学汇编遇到问题 求指教
本帖最后由 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  还是没明白哦??? 
------其他解决方案--------------------------------------------------------
感谢。这下明白了。。 
  相关解决方案