judy 在 提交
31个通用寄存器,包括程序计数器(PC)在内。这些寄存器都是32位寄存器。
6个状态寄存器。这些寄存器都是32位寄存器。
通用寄存器(R0-R15)可分为三类 :
• 不分组寄存器R0~R7;
• 分组寄存器R8~R14;
• 程序计数器PC。
对于R13,R14备份寄存器来说,每个寄存器对应六个不同的物理寄存器,其中的一个是系统模式和用户模式共用的;另外的五个对应于其他的五种处理器模式。
1、ARM总共有37个寄存器,但是每种模式下最多只能看到18个寄存器,其他寄存器虽然名字相同但是在当前模式不可见。
2、对r13这个名字来说,在ARM中共有6个名叫r13(又叫sp)的寄存器,但是在每种特定处理器模式下,只有一个r13是当前可见的,其他的r13必须切换到他的对应模式下才能看到。这种设计叫影子寄存器(banked register)。
3、R14(lr)存放返回地址
CPSR程序状态寄存器
• CPSR中各个bit位表明了CPU的某些状态信息,这些信息非常重要,和后面学到的汇编指令息息相关(譬如BLE指令中的E就和CPSR中的Z标志位有关)
• CPSR中的I、F位和开中断、关中断有关
• CPSR中的mode位(bit4~bit0共5位)决定了CPU的工作模式,在uboot代码中会使用汇编进行设置。
PC(r15)程序控制寄存器
• PC(Program control register)为程序指针,PC指向哪里,CPU就会执行哪条指令(所以程序跳转时就是把目标地址代码放到PC中)
• 整个CPU中只有一个PC(CPSR也只有一个,但SPSR有5个)。
转自: 又一个暑假