Есть сомнения относительно преобразования шестнадцатеричного кода машинной инструкции JMP. У меня есть абсолютный адрес, на который я хочу перейти, скажем, «JMP 0x400835». Во-первых, разрешено ли это? Если да, каким будет соответствующий шестнадцатеричный код? Если нет, могу ли я сначала сохранить адрес в каком-нибудь регистре, скажем, EAX, а затем поставить «JMP EAX»? Я работаю над архитектурой x86 (64b).
Я попытался распечатать шестнадцатеричный код из вывода diassem в gdb, но согласованности нет, т. е. я не вижу адреса назначения в шестнадцатеричном коде.
Я новичок в шестнадцатеричном коде и машинных инструкциях, так что извините за невежество.
ld
в Linux) будут собирать + связывать jmp с абсолютным адресом как относительный jmp из известного адреса (в коде, зависящем от положения). - person Peter Cordes   schedule 21.12.2018