ARM微處理器的編程模型之:ARM寄存器組織
3.3 ARM寄存器組織
ARM處理器有37個(gè)32位長(zhǎng)的寄存器。
· 1個(gè)用作PC(Program Counter)。
· 1個(gè)用作CPSR(Current Program Status Register)。
· 5個(gè)用作SPSR(Saved Program Status Registers)。
· 30個(gè)用作通用寄存器。
注意 | 以上37個(gè)寄存器中,1個(gè)CPSR和5個(gè)SPSR通稱為狀態(tài)寄存器,雖然這些寄存器是32位的,但目前只使用了其中的12位。除了這6個(gè)狀態(tài)寄存器外,其余的31個(gè)寄存器又稱為通用寄存器。 |
ARM處理器共有7種不同的處理器模式,在每一種處理器模式中有一組相應(yīng)的寄存器組。表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 |
續(xù)表
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模式相同的寄存器集 |
當(dāng)前處理器的模式?jīng)Q定著哪組寄存器可操作,任何模式都可以存取。
· 相應(yīng)的r0~r12。
· 相應(yīng)的r13(the stack pointer, sp)和r14(the link register, lr)。
· 相應(yīng)的r15(the program counter, pc)。
· 相應(yīng)的CPSR(current program status register, cpsr)。
特權(quán)模式(除System模式)還可以存取。
· 相應(yīng)的SPSR(saved program status register)。
3.3.1 通用寄存器
通用寄存器根據(jù)其分組與否和使用目的分為以下3類。
· 未分組寄存器(The unbanked registers),包括r0~r7。
· 分組寄存器(The banked register),包括r8~r14。
· 程序計(jì)數(shù)器(Program Counter),即r15。
塵埃粒子計(jì)數(shù)器相關(guān)文章:塵埃粒子計(jì)數(shù)器原理
評(píng)論