MOV PC,LR --ARM汇编
来源:互联网 发布:centos 主流版本 编辑:程序博客网 时间:2024/06/08 00:09
看下面这个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!,{<Regs>,LR}
对应的,使用以下指令可以完成子程序的返回
LDMFD SP!, {<Regs>,LR}
0 0
- MOV PC,LR --ARM汇编
- MOV PC,LR --ARM汇编
- MOV PC,LR --ARM汇编
- ARM汇编 MOV PC,LR
- 【转】ARM汇编 MOV PC,LR
- ARM汇编总结 MOV PC,LR
- MOV arm 通用寄存器 PC,LR
- MOV PC, LR解析
- mov pc,lr
- arm学习笔记020之mov pc,lr的解释
- bx lr 和 mov pc,lr
- ARM 汇编 LDR STR MOV
- ARM汇编之MOV指令
- ARM汇编,bx lr,
- ARm汇编 bx lr
- ARM中pc、lr寄存器
- arm汇编—str,mov等指令
- arm汇编—str,mov等指令
- 判断闰年
- 怎样把 excel 的数据导入到数据库里面去
- Java中super的几种用法并与this的区别
- linux下C++进程内存增长问题的分析
- 每天学习一个linux命令(7):mv命令
- MOV PC,LR --ARM汇编
- 每天学习一个linux命令(8):cp 命令
- mac终端执行类似 .build_native.sh 报错-bash: ./build_native.sh: Permission denied
- Android ListView使用BaseAdapter与ListView的优化
- 每天学习一个linux命令(9):touch 命令
- 一个 UNIX 开发者需要掌握的 AIX 技巧
- 三十二、Java图形化界面设计——布局管理器之CardLayout(卡片布局)
- 每天学习一个linux命令(10):cat 命令
- 每天学习一个linux命令(11):nl命令