ARM高分笔记--(二)ARM寄存器

一、

1、ARM 共有37个32位的寄存器,其中:31个通用寄存器,6个状态寄存器。

2、这些寄存器不能同时被访问,ARM的工作状态和运行模式决定了哪些集训器可以访问哪些不能被访问。

3、但,任何时候:15个通用寄存器 R0~R14 、 程序计数器PC 和 一个状态寄存器都是可以被访问的。 

二、

1、ARM 状态下的通用寄存器和程序计数器


R0  ~ R12  ,13个

R8_fiq ~ R14_fiq ,7个

R13、R13_svc 、R13_abt、R13_irq、R13_und ,5个

R14、R14_svc、R14_abt、R14_irq、R14_und,5个

R15

13+7+10+1 = 31

2、ARM状态下的程序状态寄存器


三、寄存器分组

1、不分组寄存器(不同工作模式下,他们都可以用)

R0~R7

2、分组寄存器(不同工作模式下,他们可能不一样)

R8~R14

分组寄存器中的几个特殊寄存器

(1)fiq 快速中断模式下,全部使用独立的分组寄存器

(2)R13 用作 堆栈指针 sp

(3)R14 用作子程序链接寄存器,LR(link register)用来指向函数的返回地址

R13 和 R14 不同工作模式下各不相同

3、程序计数器 R15  PC

四、状态寄存器 :CPSR 和 SPSR

1、ARM 所有工作模式下都可以访问程序状态寄存器CPSR。CPSR 包含条件码标志、中断禁止位、当前处理器模式以及其他状态和控制信息

2、SPSR 用于在异常模式下保存当前CPSR的值,为了方便在异常返回后,恢复异常发生时的工作状态

图见:


ARM的状态寄存器 只使用了32位中的12位,他们分别是: 低位的8个控制位(5个模式位+T+F+I)和高位的4个条件码标志位(N+Z+C+V)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值