SFR中的问题

[复制链接]
 楼主| 发表于 2009-4-3 09:20 | 显示全部楼层 |阅读模式
在源程序中,我将数据存储在A中<br />在调试时,只看到SFR中,ACC里面的值在变化<br />怎么不是A的值变化呢<br />还有<br />A和ACC有什么关系吗<br />谢谢了
发表于 2009-4-3 09:40 | 显示全部楼层

麻烦说明你是什么主机的

  
发表于 2009-4-3 09:45 | 显示全部楼层

A和ACC是一码事,SFR中是ACC,反映在指令中便是A(缺省指定)

  
发表于 2009-4-3 09:56 | 显示全部楼层

A是CPU寄存器,而ACC是内存单元。

虽然是两个东西,但是被连接到同一个物理存储单元。不同的指令目标是不一样的,有些指令是隐含寄存器A的,而有些指令则只能对内存单元操作。
发表于 2009-4-3 09:59 | 显示全部楼层

A和ACC在指令中还是有区别的

用A表示寄存器寻址<br />而ACC表示直接寻址<br /><br />A和ACC在物理上是同一个存储空间。
发表于 2009-4-3 10:00 | 显示全部楼层

楼上,那可不是两个东西哦。只是一个东西的两个面而已。

  
发表于 2009-4-3 10:04 | 显示全部楼层

那看你怎么理解了。

  
发表于 2009-4-3 10:11 | 显示全部楼层

六楼指的是“楼上的楼上”,看来某些低门槛的东西还是有

在MCS-51某些指令中,暗含着累加器操作数的指定(反映在指令编码上没有相应的操作数代码域,其实其相关信息已经和OP-code捆绑)。在汇编中为了显式的体现这样的一种关系,便采用了A来说明。至于ACC,那是A在SFR中的“地址”。只要能访问SFR的指令都可以将A的地址放入相应的操作数代码段,为别于A,故采用ACC表示之。<br />
发表于 2009-4-3 10:15 | 显示全部楼层

按照俺的理解,A是确实存在的CPU寄存器,

而ACC则是通过内存映射的方式,将A寄存器映射到了某个内存单元。
发表于 2009-4-3 10:21 | 显示全部楼层

sfr ACC = 0xE0; // 此便是A,能说是两个东西(实体)吗?

  
发表于 2009-4-3 10:27 | 显示全部楼层

都说要看你怎么理解了。反正我是这么理解的。

A累加器是CPU本身的一部分,是属于CPU的算术逻辑单元(ALU)的一部分。<br />而ACC则是一个内存单元,它是属于存储器部分的。<br /><br />只不过将A累加器映射到了ACC这个内存单元而已。虽然是两个东西,但是最终指向的物理单元是同一个。
发表于 2009-4-3 10:31 | 显示全部楼层

ACC是A的直接寻址方式的表示

  
 楼主| 发表于 2009-4-3 13:03 | 显示全部楼层

51at

我用的是51的,AT89S51
发表于 2009-4-3 15:00 | 显示全部楼层

我觉得你俩说的是一回事……

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

本版积分规则

2

主题

9

帖子

0

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