2.2.1 通用寄存器
更新于 2026年10月10日
版权声明
2.2.1 通用寄存器
通用寄存器包括寄存器R0~R15。
1.寄存器R0~R12
R0~R12寄存器是真正意义上的通用。在处理器运行过程中,它们作为数据的寄存器使用。
2.寄存器R13
R13作为堆栈指针寄存器,是用来访问堆栈区的。ARM Cortex_M3中采用了两个堆栈指针:主堆栈指针(Main Stack Pointer,MSP)和进程堆栈指针(Process Stack Pointer,PSP)。R13在任何时刻只能是其中一个,默认情况为MSP,可以通过控制寄存器来改变。堆栈方向是向低地址方向增长,为满堆栈机制。(https://www.daowen.com)
3.寄存器R14
R14是程序连接寄存器(Link Register,LR)。在执行分支(Branch,B)、链接(Branch Link,BL)、分支和交换(Branch and Exchange,BX)和带返回链接的无条件跳转(Branch with Link and Exchange,BLX)指令时,程序计数器的返回地址自动保存进R14,比如在子程序调用时用于保存子程序的返回地址。R14也用于异常返回,但是在这里保存的是返回后的状态,不是返回的地址。异常返回是通过硬件自动出栈弹出之前压入的程序计数器来完成的。
4.寄存器R15
R15是程序计数器(Program Counter,PC),它是程序运行的基础,具有自加的功能。该寄存器的位0始终为0,因此指令始终与字或半字边界对齐。