2011-12-22 40 views
3

我对内存映射中程序计数器(R0)和堆栈指针(R1)的位置感到困惑。我认为它们在CPU内部,所以在内存映射中没有任何位置显示这些寄存器。但是我的朋友坚持认为它们位于特殊功能寄存器(SFR)中,即它们位于内存映射的底部。哪一个是正确的答案?R0和R1在内存映射中注册在哪里?

+0

我认为你的朋友混淆了msp430和8051。 – 2011-12-27 22:27:06

回答

4

寄存器R0和R1(以及所有其他通用寄存器)驻留在CPU中,并使用对操作数使用“寄存器模式”的指令进行访问。它们不是内存映射的。

特定功能寄存器在您正在使用的MSP430型号的器件特定数据表中定义。 SFR通常包括中断使能位和中断标志位,用于直接影响CPU执行的器件(如NMI,振荡器故障等和第一个串行端口),但通常不包括其他通用外设。

例如,请参见MSP430x2xx系列用户指南,SAU144H中的“图3-1:CPU框图”。寄存器显示为CPU的一部分。

也作为示例,请参见MSP430F2619-HT device specific datasheet的第14页,其中显示了特定功能寄存器。没有提到通用寄存器。