LR(R14)寄存器
来源网址: http://hi.baidu.com/a843538946/item/4e2a34fe48b6e5be31c199ec |
终于明白这个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!,{<Regs>,LR}
对应的,使用以下指令可以完成子程序的返回
LDMFD SP!, {<Regs>,LR}
LR(R14)寄存器相关推荐
- ARM汇编中lr(r14)寄存器的作用
lr(r14)的作用问题,这个lr一般来说有两个作用: 1.当使用bl或者blx跳转到子过程的时候,r14保存了返回地址,可以在调用过程结尾恢复. 2.异常中断发生时,这个异常模式特定的物理R14被设 ...
- ARM三个寄存器 : 堆栈指针SP(R13)、连接寄存器LR(R14)和程序计数器PC(R15)
深入理解ARM的这三个寄存器,对编程以及操作系统的移植都是必要的. 1.堆栈指针R13(SP):每一种异常模式都有其自己独立的r13,它通常指向异常模式所专用的堆栈,也就是说五种异常模式.非异常模式( ...
- Linux学习笔记---Cortex-A7 常用汇编指令
MOV指令 MOV R0,R1 @将寄存器R1中的数据传递给R0 MOV R0,#0X12 @将立即数0X12传递给R0寄存器 MRS指令 MRS R0,CPSR @将特殊 ...
- 中断的概念和机制————(清华大学慕课记录)
中断 中断的关键要素 中断处理流程 标志位(Flag) 使能(Enable) 中断服务程序ISR 中断向量表 中断嵌套和中断优先级 中断潜伏期 中断 and 轮询 形象解释 轮询:一个简单的例子解释轮 ...
- iOS汇编教程:ARM(2)
感谢唐巧抽出时间对本文进行double-check. 本文是iOS汇编教程:ARM第二篇. iOS汇编教程:ARM目录如下[共分为两篇]: iOS汇编教程:ARM(1) 开始:什么是汇编 函数调用约定 ...
- r14/lr寄存器的值
LR 连接寄存器:Link Register LR寄存器的作用主要由两个: 一是用来保存子程序的返回地址: 当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中.子程序返回 ...
- cortex-m3 R14(LR)寄存器的作用
LR 连接寄存器:Link Register LR寄存器的作用主要由两个: 一是用来保存子程序的返回地址: 当通过BL或BLX指令调用子程序时,硬件自动将子程序返回地址保存在R14寄存器中.子程序返回 ...
- 【转】sp,lr,pc即汇编语言中几个常见寄存器的使用
arm汇编基础(转) 先看个例子: void test2(int a,int b,int c) { int k=a,j=b,m=c; } GCC反汇编: 00000064 <test2>: ...
- ARM学习(1) 寄存器的理解 ===》FP、SP、LR寄存器
笔者今天来聊聊对于ARM几个特殊寄存器的理解,FP.SP和LR. ARM特殊寄存器的理解====FP.SP和LR 1.介绍 2.作用 2.1 FP的作用 2.2 SP的作用 2.3 LR的作用 2.3 ...
最新文章
- Linux下修改Mysql数据库存放路径
- 什么是清华大学的“三好”学生?
- 部署自建CA颁发证书实现https加密
- linux shell 小数计算
- bootstrap使用总结(导航在carousel居中之上)
- Exchange server 2003迁移到2010后,手动更新地址列表,提示OAB Versions无效
- windows下python 入门准备工作
- OpenGL C#绘图环境配置
- xml 标签带有号php,php截取字符串并保留完整xml标签的函数代码
- java8 64_【java8下载】Java8最新版下载 64位-七喜软件园
- php实现mpg自动提取音轨,视频如何导出音轨 怎么将双音轨mpg提取其中一个音轨保存...
- 计算机的自带拍视频教程,电脑如何录制视频并剪辑
- idea中设置EcmaScript6
- 计算机加入域用户名,将客户端计算机加入到域中
- 使用Python画小猪佩奇
- 安全、智慧是 Oppo 快充技术最新的发展方向
- I/O函数 writel __raw_writel mb()/rmb()/wmb()
- 集成微信支付后每次打开app都会跳转到微信显示正在连接
- 浅谈在探索数分之路上的“数据思维”论述
- 不明所以然,就被KO了,内部人员道出真相,原因竟在这!