鱼C论坛

 找回密码
 立即注册
查看: 5516|回复: 8

关于汇编div指令的问题

[复制链接]
发表于 2011-11-16 12:00:00 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
书上是这样说的
div word ptr es:[0]
含义:(ax) = [(dx)*10000H+(ax)]/((es)*16+0)的商
           (dx) = [(dx)*10000H+(ax)]/((es)*16+0)的余数
问题来了,我始终搞不懂为什么dx要乘上10000H?看了小甲鱼关于div指令的视频,还是一头雾水

求解释

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-16 12:20:37 | 显示全部楼层
本帖最后由 cfer 于 2011-11-16 12:28 编辑

dx中存放的是被除数的高16位。ax存放的是被除数的低16位。dx * 10000h +ax就是一个求出被除数的过程。
拿十进制举例子吧。比如2344这个十进制数,如果23放在x中,44放在y中,那么要得到2344是不是就是要用
x* 100 +y呢?任何进制的数,如果乘上该进制的模值,就相当于在该数后面加一个0,乘两次模值,相当于加两个0.比如8进制数56,56*10=560,56*10*10=5600,注意这里所有都是8进制形式。同样的dx和ax要装配出被除数,就要在dx的数后加4个0,再和ax相加。怎样做相当于在dx的数后加4个0呢,那就是乘4次10h,也就是乘10000h了。不知道这样能不能说明白。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-16 12:57:26 | 显示全部楼层

好像有点懂了,你的意思是把高16位放DX中,把低16位放AX中,把高16位乘10000H再加上低16位乘10000H就等于原来的数?
不过这一句:任何进制的数,如果乘上该进制的模值   16进制的模值不是16么,应该乘上16啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-16 19:11:10 | 显示全部楼层
注意是10h,是16进制形式,其实进制都是相通的,只是我们比较熟悉十进制,所以容易不自觉地化成十进制,其实在16进制的世界里,一切都是16进制的,暂时忘了十进制吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-17 13:26:50 | 显示全部楼层
cfer 发表于 2011-11-16 19:11
注意是10h,是16进制形式,其实进制都是相通的,只是我们比较熟悉十进制,所以容易不自觉地化成十进制,其实 ...

还是不太懂,继续研究去。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-11-17 19:17:21 | 显示全部楼层
本帖最后由 kane080824 于 2011-11-17 19:19 编辑

呵呵 好笨,举个例子你就ok了
比如一个十进制数48去除以2对吧,可是呢我是个超超级大笨蛋,不懂48,只知道48是4和8两部分拼起来的,就像有两块木板,一块上写4一块上写8,然后并排放一起.我做除法所以也就只好一个一做,搞成4/2和8/2,可是这样怎么行,毕竟结果不对啊,于是有聪明人跟我总结了:说,结果应该是4/2必须乘以10然后加上8/2,我就纳闷啦,搞什么东东啊,这什么意思,他说,你把48拆开成高位和低位分别去除2可以,但4在高位上其实是40,你用4去除了,所以高位结果必须乘以10,哦这样啊原来,我问如果是一个16进制数那杂办,他说那就除后乘以16即可,我说如果我有一个16进制数是12345678H/xxxx,我分两部分高位为1234,低位为5678分别去除法,那杂办,他说,1234/xxxx后必须*16*16*16*16然后加上5678/xxxx,而连乘4个16就等于16进制数10000H,于是结果为[(1234)*10000H+5678]/xxxx;好比:十进制数12345678/xxxx,可以写成[(1234)*10*10*10*10+5678]/xxxx一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-11-17 19:38:46 | 显示全部楼层
kane080824 发表于 2011-11-17 19:17
呵呵 好笨,举个例子你就ok了
比如一个十进制数48去除以2对吧,可是呢我是个超超级大笨蛋,不懂48,只知道48是 ...

{:2_25:}
额,这例子举得。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2015-6-29 09:33:15 | 显示全部楼层
我觉得回答得非常精辟,楼主估计是陷入了一个死循环,哈哈:lol::lol:
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2015-6-30 15:37:15 | 显示全部楼层
{:1_1:}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-10-6 22:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表