随笔misc: ARM 中LR何时于PC值同步?

在可返回跳转指令 bl时自动降lr值于pc值同步。 lr = pc - 4;三级流水线, 所以lr 为 pc-4, 下一条要执行指令。

函数调用时 压栈帧 lr 入栈;
函数退出时 将lr pop到pc处;

   6f63c: e92d4030  push {r4, r5, lr}
   ......
   6f674: e8bd8030  pop {r4, r5, pc}

所以寄存器中的lr,是函数调用最内层的pc值,弹栈帧时并不会更新lr的值,只会更新pc值。lr只是在函数调用时入栈。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值