理论教育 ARM嵌入式系统基础与应用:寄存器分类,直观解读

ARM嵌入式系统基础与应用:寄存器分类,直观解读

时间:2023-11-03 理论教育 版权反馈
【摘要】:ARM处理器共有37个32位寄存器,分为如下两类:●31个通用寄存器,包括程序计数器PC。寄存器被安排成部分重叠的组,每种处理器模式使用不同的寄存器组。在任何时候,15个通用寄存器R0~R14、程序计数器PC、程序状态寄存器CPSR都是可访问的。图1-6 Thumb状态寄存器映射到ARM状态寄存器在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。

ARM嵌入式系统基础与应用:寄存器分类,直观解读

ARM处理器共有37个32位寄存器,分为如下两类:

●31个通用寄存器,包括程序计数器PC。这些寄存器是32位的。

●6个状态寄存器,也是32位的,但只使用了其中的12位。

这些寄存器不能被同时访问,具体有哪些寄存器是可访问的,取决于处理器的工作状态和运行模式。寄存器被安排成部分重叠的组,每种处理器模式使用不同的寄存器组。

ARM状态下的寄存器组织如图1-4所示。在任何时候,15个通用寄存器R0~R14、程序计数器PC、程序状态寄存器CPSR都是可访问的。

978-7-111-44508-1-Chapter01-5.jpg

ARM状态下的程序状态寄存器

978-7-111-44508-1-Chapter01-6.jpg

图1-4 ARM状态下的寄存器组织(www.daowen.com)

Thumb状态下的寄存器集是ARM状态下寄存器集的一个子集,程序可以直接访问8个通用寄存器R7~R0、程序计数器PC、堆栈指针SP、链接寄存器LR和CPSR。每一种特权模式下都有一组SP、LR和SPSR。图1-5所示为Thumb状态下的寄存器组织。

978-7-111-44508-1-Chapter01-7.jpg

图1-5 Thumb状态下的寄存器组织

Thumb状态下的寄存器组织与ARM状态下的寄存器组织的映射关系如图1-6所示。其中Thumb状态下的R0~R7与ARM状态下的R0~R7相同。Thumb状态下的CPSR和SPSR与ARM状态下的CPSR和SPSR相同。Thumb状态下的SP映射到ARM状态下的R13。Thumb状态下的LR映射到ARM状态下的R14。Thumb状态下的程序计数器PC映射到ARM状态下的PC(R15)。

978-7-111-44508-1-Chapter01-8.jpg

图1-6 Thumb状态寄存器映射到ARM状态寄存器

在Thumb状态下,高位寄存器R8~R15并不是标准寄存器集的一部分,但可使用汇编语言程序受限制的访问这些寄存器,将其用作快速的暂存器。使用带特殊变量的MOV指令,数据可以在低位寄存器和高位寄存器之间进行传送;高位寄存器的值可以使用CMP和ADD指令进行比较或加上低位寄存器中的值。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈