Просто для примера.
Адреса расписывает компилер,так как ему хочется.
При компиляции исходников они преобразуются в обьектные файлы,не привязанные к конкретному месту в памяти целевой машины,просто двоичные файлы.
Затем вызывается линкер, который собирает эти куски в образ,который Вы зальете в...