低 寄 存 器
MSP PSP
通 用 寄 存 器
高 寄 存 器
特 殊 功 能 寄 存 器
图 2.2 寄存器组织图
2.2.1 通用寄存器 R0-R15
R0~R12 寄存器:是真正意义上的通用。在处理器运行过程中,作数据的寄存。
R13 为堆栈指针寄存器:堆栈指针是用于访问堆栈,也即系统的 RAM 区。Cortex_M3 中采用了两个 堆栈指针:主堆栈指针(MSP)和进程堆栈指针(PSP),R13 在任何时刻只能是其中一个,默认情况为 MSP,可以通过控制寄存器(CONTORL)来改变。Cortex_M3 中堆栈方向是向低地址方向增长,为满堆栈 机制。堆栈操作是通过 PUSH 和 POP 来完成操作的。
例如 MSP 当前指针指向:0x2000_000C;R0=0x00000000。
执行:PUSH R0
此时 MSP 指向:0x2000_0008 执行示意如图 2.3 所示。