質問

私はARMのドキュメントの多くを読みましたが、それでもBLX命令のデコードに苦労しています。ここに2つの例があります。

__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

ただし、命令バイトを使用して、上記の2つのアドレス(0x347Cおよび0x469C)から取得するためにどの計算を使用するかを理解することはできません。 ARMのドキュメントによると、それは相対的なジャンプであるはずであり、2による正しいシフトを使用していますが、数字はうまくいきません。

誰かが手伝うことができますか?

正しい解決策はありません

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top