ARM微处理器的编程模型之:ARM寄存器组织
3.3 ARM寄存器组织
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。
尘埃粒子计数器相关文章:尘埃粒子计数器原理
评论