ACC、PSW、PC、特殊功能寄存器是在CPU中还是RAM中??

2019-03-24 17:41发布

ACC、PSW、PC、特殊功能寄存器是在CPU中还是RAM中??

按说从寄存器的定义里就明确说了存在于CPU中的高速缓存。如果翻看MSP430的手册就明确R0--R15是CPU的一部分。但是到了51单片机里,除了PC的特殊功能寄存器的地址是属于RAM的最高128字节,这样就好像RAM里也存在寄存器一样。特别是特殊功能寄存器,比如P1、P2这些sfr一般是不存在于CPU里的,但是也叫“寄存器”,并且还与ACC,PSW的地址在同一块RAM区域。

这样我就纳闷了,到底ACC、PSW、PC、SMOD等一些寄存器的物理空间到底在哪 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Goself
1楼-- · 2019-03-24 20:15

首先,楼主应该分清CPU寄存器和外设寄存器。CPU寄存器存储的是CPU的状态信息,而外设寄存器存储的是外设资源的状态信息。按理说,外设寄存器才被分配地址进行访问,而CPU寄存器直接访问,不能用地址访问。51出来得很早,寄存器设置得并不是很合理,它对于CPU寄存器和外设寄存器的分配并不是很清晰,所以导致有些其实是CPU寄存器的,但是被分配一个地址空间。 另外,纠结于这种事情着实没有必要。它们那么做,并不代表它们是科学的,而是跟芯片设计工程师的思维方法有关。一样新东西出来的时候,谁都对它不熟悉,包括设计工程师本身,所以一些设计看起来会很奇怪,令人费解。比如51的高地址空间即是特殊寄存器的,又是RAM的,访问的时候并不冲突,芯片内部会解决这种冲突,但是这会让有些使用者疑惑,比如楼主就是其中之一。后来MCU技术越来越成熟,于是现在的MCU在这些方面做得很好。这很像软件设计技术,软件技术刚出现的时候,很多人编写出来的代码用现代人看都是一团糟。 等楼主真的明白MCU简单来说其实就是由一系列的逻辑门组成的一个时序电路,在时钟的驱动下用于取出、翻译并执行指令(0和1)时,你就不再会纠结于这些东西了。

 

 

51已经很多年不使用了,上面表述的时候全凭着有限的记忆,如果有说错的地方,不要拍砖。

Li_Lei
2楼-- · 2019-03-24 22:04
 精彩回答 2  元偷偷看……
beck_ck
3楼-- · 2019-03-25 03:45
什么情况????
THS3201
4楼-- · 2019-03-25 05:11
我觉应该在RAM中,CPU内部的寄存器是没有地址的
THS3201
5楼-- · 2019-03-25 05:32
 精彩回答 2  元偷偷看……
THS3201
6楼-- · 2019-03-25 07:57
你说的这些寄存器可以当成CPU里面的寄存器进行操作即不带地址操作,也可以当RAM进行操作即带地址。奇葩般的存在

一周热门 更多>