我已经阅读了很多 ARM 文档,但仍然无法解码 BLX 指令。这里有两个例子:
__text:0000347C 02 F0 B2 ED BLX _objc_msgSend
__text:0000469C 01 F0 A2 EC BLX _objc_msgSend
这两个都应该去同一个地方,虚拟地址 0x5FE4 如下所示:
__symbolstub1:00005FE4 38 F0 9F E5 LDR PC, =__imp__objc_msgSend
但是,我无法弄清楚使用它们的指令字节从上述两个地址(0x347C 和 0x469C)得到什么计算。根据 ARM 文档,它应该是一个相对跳跃,使用 2 的右移,但数字不起作用。
任何人都可以帮忙吗?