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

