【R0~R12通用寄存器】
R0~R12都是32位通用寄存器,用于数据操作。其中:
- R0~R7为低组寄存器,所有的指令都可以访问。
- R8~R12为高组寄存器,只有32位Thumb2指令和很少的16位Thumb指令能访问。
【R13堆栈指针SP】
Cortex-M3拥有两个堆栈指针,然而它们是banked,任一时刻只能使用其中的一个。
- 主堆栈指针(MSP):复位后缺省使用的堆栈指针,用于操作系统内核以及异常处理(包括中断服务)。
- 进程堆栈指针(PSP):由用户的应用程序代码使用。
【R14连接寄存器LR】
连接寄存器LR用于在调用子程序时存储返回地址。例如,在使用BL(分支变连接,Branch and Link)指令时,就自动填充LR的值。
【R15程序计数寄存器PC】
程序计数寄存器PC指向当前的程序地址。如果修改它的值,能改变程序的执行流。