Декодирование инструкции 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, но цифры не работают.
Кто-нибудь может помочь?