Question

J'ai lu une grande partie de la documentation du bras mais j'ai toujours du mal à décoder une instruction BLX. Voici deux exemples:

__text:0000347C 02 F0 B2 ED                 BLX             _objc_msgSend

__text:0000469C 01 F0 A2 EC                 BLX             _objc_msgSend

Les deux sont censés aller au même endroit, adresse virtuelle 0x5Fe4 comme vu ici:

__symbolstub1:00005FE4 38 F0 9F E5                 LDR             PC, =__imp__objc_msgSend

Cependant, je ne peux pas comprendre quel calcul est utilisé pour obtenir des deux adresses ci-dessus (0x347c et 0x469c) en utilisant leurs octets d'instructions. Selon la documentation ARM, c'est censé être un saut relatif, en utilisant un shift droit de 2, mais les chiffres ne fonctionnent pas.

Quelqu'un peut-il aider?

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top