我对内存映射中程序计数器(R0)和堆栈指针(R1)的位置感到非常困惑。我认为它们在 CPU 内部,所以内存映射中没有任何位置可以显示这些寄存器。但是我的朋友坚持认为它们位于特殊功能寄存器(SFR)中,即它们位于内存映射的底部。哪个是正确答案?
问问题
2748 次
1 回答
6
寄存器 R0 和 R1(以及所有其他通用寄存器)驻留在 CPU 中,并使用对操作数使用“寄存器模式”的指令进行访问。它们不是内存映射的。
特殊功能寄存器在您使用的 MSP430 变体的器件特定数据表中定义。SFR 通常包括直接影响 CPU 执行(如 NMI、振荡器故障等和第一个串行端口)但通常不包括其他通用外设的设备的中断使能位和中断标志位。
例如,请参阅 MSP430x2xx 系列用户指南, SAU144H中的“图 3-1:CPU 框图” 。寄存器显示为 CPU 的一部分。
作为示例,请参阅MSP430F2619-HT 器件特定数据表的第 14 页,其中显示了特定的功能寄存器。没有提到通用寄存器。
于 2011-12-23T16:26:09.803 回答