嵌入式学习笔记(2)ARM的37个寄存器详解

  • ARM中寄存器包括SFR和37个通用寄存器,通用寄存器是CPU(运算器+控制器+通用寄存器)的组成部分。
  • 37个通用寄存器是搭配7种工作模式来学习的。因为每种工作模式下,可见的通用寄存器都不相同,每种模式下最多只能看到18个寄存器,部分寄存器虽然名字相同,但是在当前模式下不可见。
  • 对于R13这个名字来说,在ARM中共有6个名叫R13(又叫sp)的寄存器,但是在每种特定工作模式下,只有当前模式的R13是可见的,其他r13必须切换到其他对应模式下才能看到。这种设计叫影子寄存(banked register)。
  • 用户模式与系统模式共用一组寄存器,5种异常模式有各自的R13、R14和SPSR。
  • R13用作栈指针,故也叫sp;由于处理器的每种运行模式均有自己独立的物理寄存器R13,在用户应用程序的初始化部分,一般都要初始化每种模式下的R13,使其指向该运行模式的栈空间。这样,当程序的运行进入异常模式时,可以将需要保护的寄存器放入R13所指向的栈,而当程序从异常模式返回时,则从对应的栈中恢复,采用这种方式可以保证异常发生后程序的正常执行。
  • R14用作保存返回地址,故也叫链接寄存器lr;当执行子程序调用指令(BL)时,R14可得到R15(程序计数器PC)的备份。在每一种运行模式下,都可用R14保存子程序的返回地址,当用BL或BLX指令调用子程序时,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值