ARM寄存器

ARM寄存器

寄存器是存在于CPU中的存储速度极快的存储器,主要负责储存程序运行过程中需要保存的临时变量和系统环境变量等等.

操作模式

为了处理不同的情况,ARM设置了8中操作模式:(除了user模式,其他的都是特权模式Privileged Mode, user模式不能主动切换到其他模式)

这里写图片描述

寄存器组织概要

在32-bit的ARM Cortex-A8处理器中的寄存器相应的也是32位的.并且每种不同的操作模式都有一组对应的寄存器阻( 通用寄存器+各自独有的寄存器 ),如图:
这里写图片描述

从上图可看出,一共有40个32-bit的寄存器:

1. 32个通用寄存器;

r0-r13可以用来储存数据或者地址
r14: Link Register: It receives the return address when the processor executes a
Branch with Link ( BL or BLX ) instruction.
You can treat r14 as a general-purpose register at all other times. Similarly,
the corresponding banked registers r14_mon, r14_svc, r14_irq, r14_fiq,
r14_abt, and r14_und hold the return values when the processor receives
interrupts and exceptions, or when it executes the BL or BLX instructions
within interrupt or exception routines

2. 7个状态寄存器:(state program status register)

  1. 一个 [ CPSR ] (Current Program State Register,储存当前程序的状态): CPSR在用户级编程时用于存储条件码。CPSR包含条件码标志,中断禁止位,当前处理器模式以及其他状态和控制信息。
    CPSR 详细的记录看这里
  2. 6个SPSR(Saved Program State Register,保存程序的运行状态): SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。

3. 1个程序计数器PC(program counter)

  1. ALU算术逻辑单元的状态标志的备份;
  2. 当前处理器模式;
  3. 中断使能标志;
  4. 条件标志condition code flags

通用寄存器分组

通用寄存器也是有分类的,根据它们是否分组分为:

未分组寄存器R0-R7

R0 - R7, 这几个寄存器对于任何一个模式都是通用的功能,没有被系统用作特殊的用途, 使用的是相同的物理寄存器.

分组寄存器R8-R14

R8 - R14,它们没有访问的物理寄存器取决于当前的处理器模式.从第一份图可看出,FIQ快速终端处理模式由于需要FAST, 因此,这FIQ模式下,访问的物理寄存器R8-R14就不同于其他模式,这样也是为了实现快速,不被其他模式破坏.
因此在使用的时候,使用寄存器后缀名加以区分.
例如: R8_user/R8_fiq;
这样,当FIQ中断到达时,不用保存其他模式通用寄存器的状态,也不用执行恢复现场的指令,从而使中断快速处理,因此,FIQ模式通常被用来处理紧急的任务,如DMA处理.
特殊的R13(SP),R14(LR)每个寄存器对应8组不同的物理寄存器,处理user/sys模式,其他都不同,因此,为了区分,使用是也需要加上后缀:
R13_< mode>
R14_< mode>
R13,R14详细记录

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MichaelJay2015

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值