鱼C论坛

 找回密码
 立即注册
查看: 1954|回复: 1

关于通用寄存器越界问题

[复制链接]
发表于 2012-9-11 05:42:48 | 显示全部楼层 |阅读模式
5鱼币
1.jpg 2.jpg
中介是ax寄存器,既然说不能直接把数据放入dx中,为什么又用ax做中介,ax和dx性质不是一样吗

最佳答案

查看完整内容

呵呵 楼主, 你没全面分析,所以才有这个纠结 问题 (一):中介是ax寄存器,既然说不能直接把数据放入dx中,为什么又用ax做中介,ax和dx性质不是一样吗? 你的设想是: 为什么不能直接先复制到dx中,在用dx+数值。 分析: 如果用直接先复制到dx中,在用dx+数值, 这就大错特错了, 你看, 你加的是一个 8位数据。 比如: dx = dx+8位数据, 这样就会导致 两个运算类型不匹配。 所以要用一个中介,这个 ...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-9-11 05:42:49 | 显示全部楼层
呵呵  楼主,  你没全面分析,所以才有这个纠结

问题 (一):中介是ax寄存器,既然说不能直接把数据放入dx中,为什么又用ax做中介,ax和dx性质不是一样吗?

你的设想是:  为什么不能直接先复制到dx中,在用dx+数值。

分析:  如果用直接先复制到dx中,在用dx+数值,  这就大错特错了,  你看,  你加的是一个 8位数据。  

比如:   dx = dx+8位数据,   这样就会导致 两个运算类型不匹配。   所以要用一个中介,这个中介是通用寄存器,   因为8086cpu的通用寄存器都是16位的。  这样类型就匹配了,   所以书上要用个中介。      

问题(二): ax和dx性质不是一样吗?

                      ax和dx,本事是一样的(cx,dx也是),   但是有用编程者使用的方式不同,  而导致意义也不同。         
  
比如书上是ax到中介,   那你也可以用bx 或 cx当中介,  因为他们都是通用寄存器     所以都可以用来当中介   

呵呵,  楼主,  其实这就是一个思路转换的问题,   当学多了,   写多了,  自然而然的就会怎么想了。

加油学习,  bye~

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-8 04:33

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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