2011-12-22 72 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頁,其中顯示了特定功能寄存器。沒有提到通用寄存器。