Я новичок в этих областях, недавно я немного поиграл с отладчиком и дизассемблерами.Глядя на двоичный инструмент внутри бункера, я заметил, что у нас есть адреса памяти, назначенные ему статически.Мой вопрос: почему, если операционные системы управляют памятью (которые меняют адрес функций и т. Д. Каждый раз, когда я запускаю двоичный файл), у нас также есть статические адреса памяти в двоичном (?) Практическом примере:
Openдвоичный файл в бункере и показать, что printf находится по адресу 0x11ed, затем запустите программу в GDB и, очевидно, у нас есть printf по другому адресу.Является ли компилятор, который назначает статический адрес бинарному и почему?Любые рекомендуемые ресурсы, чтобы узнать больше?