屌丝学arm汇编-06-thumb模式下ldr和bl一起使用需要注意的
2016-09-04 23:25
344 查看
</pre>1.arm在thumb模式下,pc = pc + 4;但是bl指令在thumb的指令为4byte,这个是个特殊情况,如果我在bl指令之前获取pc的指针,那么其值是否会仍然遵守pc = pc + 4?<p></p><p>2.bl指令执行跳转的时候,lr = 下条指令 + 1,那么我直接ldr 一个 指令标号和数据段的标号,是否仍然是这样?</p><p>演示代码地址:http://download.csdn.net/detail/losting_boy/9621625</p><p><span style="font-family:monospace; white-space:pre; background-color:rgb(240,240,240)"></span></p><pre name="code" class="html"> area ldr_bl,code,readonly entry start ldr r0,= sub1 + 1 bx r0 b . code16 sub1 mov lr,pc bl sub2 bl sub2 ldr r0,=buf ldr r1,=sub2 sub2 mov pc,lr (T area data1,data,readwrite buf DCD 0 end实验证明:
(1)arm在thumb模式下,pc = pc + 4,无视下条指令是2字节还是4字节,都是依然成立。
(2)ldr加载数据段的标号是原地址,如果加载代码段的标号,则是 标号地址 + 1;
(3)bl指令之后,lr = bl所处地址 + 4 + 1;
相关文章推荐
- arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
- 屌丝学arm汇编-04-ldr的使用小结
- arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
- arm平台下使用bl和ldr跳转应当注意的地方
- ARM-Linux汇编到ADS汇编转换需要注意的问题
- 使用单例模式需要注意的几个问题
- Sql order by 和 group BY一起使用时需要注意
- gdb:如果在没有符号表的时候让gdb强制以thumb模式反汇编ARM二进制代码
- 使用IE9调试各版本中的适应性问题需要注意的浏览器模式和文档模式
- 使用单例模式需要注意的几个问题
- ARM BL或中断返回需要注意的一些细节问题
- ARM汇编: ldr与mov 、 b与bl
- Activity启动模式以及在使用时需要注意的地方
- 使用单例模式需要注意的几个问题
- 屌丝学arm汇编-03-arm模式和cpsr
- 使用单例模式需要注意的几个问题
- ARM汇编: ldr与mov 、 b与bl
- Sql order by 和 group BY一起使用时需要注意
- arm汇编ldr,str,b,bl指令
- 使用单例模式需要注意的几个问题