当前位置: 代码迷 >> C语言 >> 汇编小疑点。求高手
  详细解决方案

汇编小疑点。求高手

热度:9370   发布时间:2013-02-26 00:00:00.0
汇编小问题。。。求高手
利用除法指令计算100001/100

代码
mov dx,1
mov ax,86A1H
mov bx,100
div bx

100001--->186A1H
根据题意可以值
被除数大于65535因此需要两个寄存器保存 ax和dx
ax保存被除数的低16位
dx保存被除数的高16位

小弟不明白的是为什么写下面的代码就能保证ax保存低16位 dx保存高16位

mov dx,1
mov ax,86A1H

求高手
div 汇编

------解决方案--------------------------------------------------------
因为100001表示成16进制就是0x186A1,2^16等于65536,放到高位,地位的86A1放到低位。dx为高16,故置为1,ax为低位故置为86A1.
------解决方案--------------------------------------------------------
186A1H  是100001的十六进制表示方式,
单个十六进制数,比如F,二进制表示为 1111, 就是4个bit.
那么86A1就是4*4bit = 16bit
也就是说,前面的1是高16bit,86A1是低16bit
  相关解决方案