鱼C论坛

 找回密码
 立即注册
查看: 1489|回复: 4

非常非常需要帮助解答,谢谢大神。

[复制链接]
发表于 2014-3-19 12:21:51 | 显示全部楼层 |阅读模式

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

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

x
QQ截图20140319121507.png 这是 汇编语言 王爽 第二版 第200页下面的一个例子 我想不明白 16位乘法,第一次执行 mul bx 的时候 结果 高位 放在 dx,低位 低位 放在 ax 中,可是第二次执行 mul bx 的时候 还是 执行的 ax*bx 结果 还是高位 放在 dx 中,低位 放在 ax 中,那么第一次放进 dx 进去 的第一次相乘的高位 怎么处理的呢,我想不明白,请大神帮忙解答,下面是我 随意编写的 一个小验证程序,还有 debug 的结果,都显示这么写不正确。请大神帮忙鉴定下,谢谢。
QQ截图20140319121615.png QQ截图20140319122048.png 这是实际结果
QQ截图20140319121649.png



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2014-3-19 16:26:13 | 显示全部楼层
EFFF*EFFF=E0FE2001

EFFF*2001=1E00CFFF

mul bx 应该就是bx*ax
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2014-3-20 10:53:24 | 显示全部楼层
正如你所调试的那样:

第一次执行mul bx:EFFFH * EFFFH = E0FE2001H,AX存放低位2001H,DX存放高位E0EFH

第二次执行mul bx:2001H * EFFFH = 1E00CFFFH,AX存放低位CFFFH,DX存放高位1E00H

第一次的存放的将诶过会被第二次所覆盖。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-20 11:06:26 From FishC Mobile | 显示全部楼层
小甲鱼 发表于 2014-3-20 10:53
正如你所调试的那样:

第一次执行mul bx:EFFFH * EFFFH = E0FE2001H,AX存放低位2001H,DX存放高位E0EF ...

谢谢小甲鱼老师。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-3-20 11:07:34 From FishC Mobile | 显示全部楼层
luckin 发表于 2014-3-19 16:26
EFFF*EFFF=E0FE2001

EFFF*2001=1E00CFFF

谢谢这位大神。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-7-2 02:52

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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