历史上的今天
今天是:2024年09月23日(星期一)
2019年09月23日 | ARM汇编之MOV PC,LR
2019-09-23 来源:eefocus
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!,{ 对应的,使用以下指令可以完成子程序的返回 LDMFD SP!, {
上一篇:ARM汇编:MRS和MSR指令
下一篇:ARM汇编:乘法指令集
史海拾趣
|
急需!!! 电子技术研发设计开发方案!!! 公司拓展,急需方案,请拥有方案或部分技术的公司和个人迅速与我联系, 邮箱 rdeasy@yahoo.cn 请注明公司全名或个人的姓,详细准确的联系方式和方案,否则不予考。 你有别的电子技术设计 ...… 查看全部问答> |
|
作者:刘洪涛,华清远见嵌入式学院金牌讲师。 面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库,很多linux应用程序开发人员和linux设备驱动开发人员即兴奋,又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能,烦躁 ...… 查看全部问答> |
|
上世纪90年代后期逐步热起来的微电子专业,目前依然热度不减。各大高校顺应微电子产业的发展需要,纷纷成立独立的微电子系和学院,开办了许多与集成电路产业关系密切的二级学院(如北京大学的软件与微电子学院、电子科技大学成都学院等等)。以下将介 ...… 查看全部问答> |
|
哪个朋友XINLIN的VHDL程序比较厉害,,我写了个程序老有点小问题 八个拨码开关 11111111 不分频 11111110 2分频 11111101 3分频 11111100 4分频 依次类推,,,问题的难点就在奇数 偶数都要分频 而且 我用的是XINLIN 的95 ...… 查看全部问答> |
|
今天我想把wince面板上的一些东西。我找到了public\\common下关于UI部分的程序。我直接改了calibrui.rc这个文件。只是希望我在进入触屏校验界面的时候,上面的那几行字去掉,或者改变下。但是改了之后我就这样build.make image发现跟本就没有什么效 ...… 查看全部问答> |




