本文主要是介绍ARM64位B和BL解析及实例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
B和BL的基本用法
ARM64常用跳转指令为B指令以及BL指令。
我们可以使用objdump -D 程序 > 程序.dis 输出反汇编内容。
B指令:简单的程序跳转,跳转到目标标号处执行。
BL指令:带链接程序跳转,也就是要带返回地址。在发生跳转前,将当前PC-4保存到R14中。
B:0x17向前跳转,0x14向后跳转
BL:0x97向前跳转 0x94向后跳转
BL指令 97 向前跳转演示
偏移地址计算过程:
(目标地址 - 指令地址 - 4 )/ 4 = 偏移
FFFFFF - [ ( 70F0570 - 4EA1A54 - 4 ) / 4 ] ==>
FFFFF - 893AC6 = 76C539
最终值 = 9776C539
BL指令 94 向后跳转演示
( 90E6840 - 70F05A0 ) / 4 = 7FD8A8
最终值 = 947FD8A8
这篇关于ARM64位B和BL解析及实例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!