(@_@) 发表于 2012-9-11 05:42:48

关于通用寄存器越界问题


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

梦幻羽羽 发表于 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~

页: [1]
查看完整版本: 关于通用寄存器越界问题