您的位置 首页 IOT

ARM中SP,LR,PC运用

MOVPC,LR看下面这个ARM汇编吧BLNEXT;跳转到子程序………;NEXT处执行NEXT……….MOVPC,LR;从子程序返回这里的BL是跳转…

MOV PC,LR

看下面这个ARM汇编吧
BL NEXT ;跳转到子程序
……… ;NEXT处履行
NEXT
……….
MOV PC,LR ;从子程序回来
这儿的BL是跳转的意思,LR(R14)保存了回来地址
PC(R15)是当时地址,把LR给PC便是从子程序回来
这儿有一下总结
首要
1.SP(R13) LR(R14)PC(R15)
2.lr(r14)的效果问题,这个lr一般来说有两个效果:
1》.当运用bl或许blx跳转到子进程的时分,r14保存了回来地址,能够在调用进程结束康复。
2》.反常中断产生时,这个反常形式特定的物理R14被设置成该反常形式即将回来的地址。

别的留意pc,在调试的时分显现的是当时指令地址,而用mov lr,pc的时分lr保存的是此指令向后数两条指令的地址,我们能够试一下用mov pc,pc,成果得到的是跳转两条指令,这个原因是因为arm的流水线形成的,预取两条指令的成果.
3.》我曾经看书不明白的当地
子程序回来的三种办法
现在总结如下
1.MOV PC,LR
2.BL LR
3.在子程序入口处运用以下指令将R14存入仓库
STMFD SP!,{,LR}
对应的,运用以下指令能够完结子程序的回来
LDMFD SP!, {,LR}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/yingyong/iot/277043.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部