ARM微处理器的编程模型之:ARM寄存器组织
3.3ARM寄存器组织
ARM处理器有37个32位长的寄存器。
· 1个用作PC(Program Counter)。
· 1个用作CPSR(Current Program Status Register)。
· 5个用作SPSR(Saved Program Status Registers)。
· 30个用作通用寄存器。
注意 |
以上37个寄存器中,1个CPSR和5个SPSR通称为状态寄存器,虽然这些寄存器是32位的,但目前只使用了其中的12位。除了这6个状态寄存器外,其余的31个寄存器又称为通用寄存器。 |
ARM处理器共有7种不同的处理器模式,在每一种处理器模式中有一组相应的寄存器组。表3.2显示了ARM的寄存器组织概要。
表3.2 寄存器组织概要
User |
FIQ |
IRQ |
SVC |
Undef |
Abort |
|||||
R0 |
User mode |
User mode and CPSR |
User mode and CPSR |
User mode R0~R12,R15 and CPSR |
User mode R0~R12,R15 and CPSR |
|||||
R1 |
||||||||||
R2 |
||||||||||
R3 |
||||||||||
R4 |
||||||||||
R5 |
||||||||||
R6 |
||||||||||
R7 |
||||||||||
R8 |
R8 |
|||||||||
R9 |
R9 |
|||||||||
R10 |
R10 |
续表
User |
FIQ |
IRQ |
SVC |
Undef |
Abort |
|||||
R11 |
R11 |
|||||||||
R12 |
R12 |
|||||||||
R13(SP) |
R13(SP) |
R13 |
R13 |
R13 |
R13 |
|||||
R14(LR) |
R14(LR) |
R14 |
R14 |
R14 |
R14 |
|||||
R15(PC) |
CPSR |
||||||||||
SPSR |
SPSR |
SPSR |
SPSR |
SPSR |
注意 |
System模式使用和User模式相同的寄存器集 |
当前处理器的模式决定着哪组寄存器可操作,任何模式都可以存取。
· 相应的r0~r12。
· 相应的r13(the stack pointer, sp)和r14(the link register, lr)。
· 相应的r15(the program counter, pc)。
· 相应的CPSR(current program status register, cpsr)。
特权模式(除System模式)还可以存取。
· 相应的SPSR(saved program status register)。
3.3.1 通用寄存器
通用寄存器根据其分组与否和使用目的分为以下3类。
· 未分组寄存器(The unbanked registers),包括r0~r7。
·分组寄存器(The banked register),包括r8~r14。
·程序计数器(Program Counter),即r15。
尘埃粒子计数器相关文章:尘埃粒子计数器原理
评论