История изменений
Исправление bigbit, (текущая версия) :
Напишу подробнее, т.к. сам только что поисследовал это.
В IA32 инструкция «mov eax, [012345678]» будет представлена байтами A1 78 56 34 12. Последние 4 байта - смещение относительно нуля.
A178563412 mov eax, [012345678]
В AMD64 та же самая инструкция «mov eax, [012345678]» будет представлена как 8B 05 72 56 34 12. Последние 4 байта - смещение относительно RIP следующей команды (если RIP текущей команды = 0). А аналогичной формы команды с абсолютным адресом как в IA32, похоже, в 64-битном режиме нет в принципе.
8B0572563412 mov eax, [012345678]
Т.е. в AMD64 одна и та же инструкция «mov eax, [012345678]» будет представлена различными байтами, в зависимости от того, по какому смещению RIP она располагается.
Исходная версия bigbit, :
Напишу подробнее, т.к. сам только что поисследовал это.
В IA32 инструкция «mov eax, [012345678]» будет представлена байтами A1 78 56 34 12. Последние 4 байта - смещение относительно нуля.
A178563412 mov eax, [012345678]
В AMD64 та же самая инструкция «mov eax, [012345678]» будет представлена как 8B 05 72 56 34 12. Последние 4 байта - смещение относительно RIP следующей команды (если RIP текущей команды = 0). А аналогичной форма команды с асоблютным адресом как в IA32, похоже, в 64-битном режиме нет в принципе.
8B0572563412 mov eax, [012345678]
Т.е. в AMD64 одна и та же инструкция «mov eax, [012345678]» будет представлена различными байтами, в зависимости от того, по какому смещению RIP она располагается.