Cortex-A8寄存器结构
Cortex-A8处理器有40个32位寄存器:
32个通用寄存器
7个状态寄存器
1个专用于记录当前状态(CPSR)
6个专用于记录状态切换前的状态(SPSR)
1个程序计数器PC
在不同的工作模式和处理器状态下,程序员可以访问的寄存器也不尽相同。
寄存器分组
系统 |
用户 |
快速中断 |
中断 |
超级用户 |
中止 |
未定义 |
监视 |
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
r0 |
r1 |
r1 |
r1 |
r1 |
r1 |
r1 |
r1 |
r1 |
r2 |
r2 |
r2 |
r2 |
r2 |
r2 |
r2 |
r2 |
r3 |
r3 |
r3 |
r3 |
r3 |
r3 |
r3 |
r3 |
r4 |
r4 |
r4 |
r4 |
r4 |
r4 |
r4 |
r4 |
r5 |
r5 |
r5 |
r5 |
r5 |
r5 |
r5 |
r5 |
r6 |
r6 |
r6 |
r6 |
r6 |
r6 |
r6 |
r6 |
r7 |
r7 |
r7 |
r7 |
r7 |
r7 |
r7 |
r7 |
r8 |
r8 |
r8_fiq |
r8 |
r8 |
r8 |
r8 |
r8 |
r9 |
r9 |
r9_fiq |
r9 |
r9 |
r9 |
r9 |
r9 |
r10 |
r10 |
r10_fiq |
r10 |
r10 |
r10 |
r10 |
r10 |
r11 |
r11 |
r11_fiq |
r11 |
r11 |
r11 |
r11 |
r11 |
r12 |
r12 |
r12_fiq |
r12 |
r12 |
r12 |
r12 |
r12 |
r13(SP) |
r13(SP) |
r13_fiq |
r13_irq |
r13_svc |
r13_abt |
r13_und |
r13_mon |
r14(LR) |
r14(LR) |
r14_fiq |
r14_irq |
r14_svc |
r14_abt |
r14_und |
r14_mon |
r15(PC) |
PC |
PC |
PC |
PC |
PC |
PC |
PC |
CPSR |
CPSR |
CPSR |
CPSR |
CPSR |
CPSR |
CPSR |
CPSR |
|
|
SPSR_fiq |
SPSR_irq |
SPSR_svc |
SPSR_abt |
SPSR_und |
SPSR_mon |
r0-r12:13个通用寄存器,当C和汇编互相调用时r0 - r3用来传递函数参数。
r13:堆栈指针寄存器(SP stack pointer)。
r14:链接寄存器(LR link register)。
r15:程序计数器(PC program counter)。
CPSR:当前程序状态寄存器(CPSR current program status register)
CPSR/SPSR
n 程序状态寄存器(Program Status Registers) CPSR/SPSR
n 条件标志(Condition Code Flags)31-28
n N =1 ALU计算结果为负数(Negative result from ALU flag)。
n Z =1 ALU计算结果为0(Zero result from ALU flag)。
n C =1 ALU计算结果进位(ALU operation Carried out)。
n V =1 ALU计算结果溢出(ALU operation Overflowed)。
n 中断禁止位(Interrupt Disable bits)7-5
n I = 1,关IRQ。
n F = 1,关FIQ。
n T Bit (Architecture v4T only)
n T = 0, 处理器当前处于ARM状态(Processor in ARM state)
n T = 1, 处理器当前处于Thumb状态(Processor in Thumb state)
n 模式位Mode 4-0