L12D3 ARM寄存器组织

一、ARM寄存器组织(一)

(一)寄存器的概念

不同CPU寄存器的个数、位数、数量不同。

1、存储器,速度快,但是不能进行取地址工作,寄存器没有地址,寄存器的存储类型是register(栈,堆...)。数据只能是整形不能是浮点型。register只能修饰局部变量。全局变量声明周期很长。

2、寄存器一般用于暂时存放运算数据和运算结果。

3、寄存器可以分为通用寄存器、专用寄存器(规定好存取内容)、控制寄存器(通过修改控制寄存器修改处理器状态)

二、ARM寄存器组织(二)

(一)ARM寄存器

不同模式允许使用的寄存器不同

*寄存器是某一个模式下特有的

ARM一共有40个寄存器(7模式下有37个)

(二)专用寄存器

R15:  程序计数器PC,存储当前取值指令的地址

自动增加(每次自增4)或者通过汇编修改

R14:链接寄存器LR

1. 执行跳转指令(例如函数调用)时,LR会自动保存跳转指令下一条的指令地址,子程序调用,是预知的

2. 异常发生,LR会自动保存被异常打断的指令的下一条指令,是随机发生的

R13:栈指针,存储当前模式下的栈顶地址

栈的本质是一段内存,存储的是临时数据,栈指针是实时改变的

三、ARM寄存器组织(三)

(一)CPSR控制寄存器

当前程序状态寄存器

32位ARM处理器的寄存器都是32位

1、模式位

2、状态位

3、FIQ、IRQ禁止

4、溢出标志/进位或借位扩展/零/负或小于  [28,31]

bit[28]有符号数

bit[29]无符号数

四、简述ARM处理器中R13、R14、R15、CPSR寄存器的作用

(一)R13:栈指针,存储当前模式下的栈顶地址,栈指针是实时改变的。
(二)R14:链接寄存器LR
         1. 执行跳转指令(例如函数调用)时,LR会自动保存跳转指令下一条的指令地址,子程序调用,是预知的。
         2. 异常发生,LR会自动保存被异常打断的指令的下一条指令,是随机发生的。
(三)R15:程序计数器PC,存储当前取值指令的地址,自动增加(每次自增4)或者通过汇编修改。
(四)CPSR:控制当前程序程序状态。包括模式位、状态位、FIQ和IRQ禁止、溢出标志、进位借位、零、负或小于等标志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值