Адрес инструкции по сборке - PullRequest
0 голосов
/ 14 июня 2010

Почему каждый раз, когда я разбираю один и тот же файл .exe, одна и та же инструкция находится по одному и тому же адресу? И что это за адрес (RAM? HDD? Virtual?)?

Ответы [ 2 ]

1 голос
/ 14 июня 2010

Основная идея заключается в том, что для обеспечения переносимости программ и обеспечения возможности запуска различных программ в одной и той же системе без коллизий то, что вы видите, в основном равнозначно относительным адресам, которые ОС переводит в реальные адреса при запуске программы.

Причина, по которой вам вообще нужны адреса, - это инструкции, которые ссылаются на адреса других инструкций, таких как прыжки.

0 голосов

Нет причин.Это просто, как формат исполняемого файла / компоновки на этом O / S решил работать.Каждая архитектура отличается, например, даже в x86 и x64 исполняемые файлы могут загружаться по случайному виртуальному адресу или по одному и тому же адресу каждый раз.Дизассемблер выдаст либо смещение в файле, либо виртуальный адрес, который является просто базовым адресом, определяемым во время выполнения + смещение файла и, возможно, смещение раздела.Это зависит от архитектуры * , поэтому я не могу дать конкретный ответ ...

...