屌丝学arm汇编-06-thumb模式下ldr和bl一起使用需要注意的
来源:互联网 发布:java与php哪个好 编辑:程序博客网 时间:2024/06/06 09:36
</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,readonlyentry startldr r0,= sub1 + 1 bx r0 b . code16 sub1mov lr,pc blsub2 blsub2 ldrr0,=buf ldr r1,=sub2sub2mov pc,lr (T areadata1,data,readwrite bufDCD 0 end实验证明:
(1)arm在thumb模式下,pc = pc + 4,无视下条指令是2字节还是4字节,都是依然成立。
(2)ldr加载数据段的标号是原地址,如果加载代码段的标号,则是 标号地址 + 1;
(3)bl指令之后,lr = bl所处地址 + 4 + 1;
0 0
- 屌丝学arm汇编-06-thumb模式下ldr和bl一起使用需要注意的
- arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
- arm平台下使用bl和ldr跳转应当注意的地方(arm-linux-gcc环境)
- ARM平台下bl和ldr指令的区别
- ARM平台下ldr和bl跳转的区别
- arm汇编ldr,str,b,bl指令
- ARM和Thumb的跳转指令B、BL、BX
- 屌丝学arm汇编-04-ldr的使用小结
- ARM汇编: ldr与mov 、 b与bl
- ARM汇编指令B和BL的区别
- bl 和 ldr跳转程序的区别
- ARM中LDR B BX BL BLX指令的研究
- ARM汇编中LDR和ADR的区别
- ARM汇编指令ldr和MOV的区别
- ARM汇编中的ldr和adr的区别
- ARM汇编指令:adr和ldr的前因后果
- arm汇编指令之LDR 和 ADR的一些区别
- ARM汇编指令:LDR伪指令和LDR装载指令的区别
- mfc 机制笔记--摘自《把脉vc++》
- 数字电视复用器中的PCR校正技术
- PsychoPy入门_04_等级评定
- 我眼中的匈牙利命名法
- LeetCode House Robber III
- 屌丝学arm汇编-06-thumb模式下ldr和bl一起使用需要注意的
- linux 配置ip
- Bitmap 高效加载图片
- vi 使用指南
- web前端学习(3)
- 时间啊时间
- 让Git不再难学
- Linux0.11内核--启动引导代码分析setup.s
- http://hanqunfeng.iteye.com/blog/2089658