Декодирование инструкции BLX на ARM / Thumb (IOS)

Я прочитал большую часть документации 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, но цифры не работают.

Кто-нибудь может помочь?

Ответы на вопрос(1)

Ваш ответ на вопрос