ARM 程序计数器 R15(PC)

寄存器 R15 为程序计数器(PC),它指向 正在取指的地址。可以认为它是一个通用寄存器,但是对于它的使用有许多与指令相关的限制或特殊情况。

ARM9 正常操作时,从 R15 读取的值是处理器 正在取指的地址,即:

R15(PC)= 当前正在执行指令的地址 + 8

注:

  1. 8 是指 8 个字节,是两条 ARM 指令的长度。
  2. ARM 是 3 级流水线:取指,译码,执行。

由于 ARM7 指令总是以字为单位,所以 R15 寄存器的最低两位总是为 0。
R15 值的改变将引起程序执行顺序的改变。
向 R15 内写入一个值,程序将跳转到以 R15 值为地址的程序执行


下面讲一下上面代码段中的公式怎么推出来的:

ARM7 架构采用了一个 3 段的流水线:

  1. 取指:将指令从内存中取出来。
  2. 译码:操作码和操作数被译码以决定执行什么功能。
  3. 执行:执行已译码的指令。

在这里插入图片描述
由上述三级指令流程我们可以很容易得出下面这幅流程图:
从第三列我们可以

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值