BSS является заполнителем, определенным в вашем исполняемом (или ELF) формате. Таким образом, он не занимает дисковое пространство, но указывает только, какую область памяти следует назначать компоновщику или загрузчику.
Точная операция зависит от операционной системы. Поскольку вы ссылаетесь на ELF, я предполагаю, что он предназначен для использования во встроенной системе. Если вы создадите для ROMmable кода, ваш cmd-файл компоновщика сопоставляет BSS с областью статического адреса.
В случае, если вы создаете для операционной системы (то есть Linux), загрузчик из операционной системы выполнит пропуск перемещения, в котором он сопоставляет все местоположения, помеченные как относительные в формате excecutable, в физические или логические местоположения в памяти.
Поскольку вы указываете, что всегда видите одно и то же значение, это означает, что процесс повторяется для вашей системы. Ожидайте увидеть изменения при смене файлов-линкеров (т. Е. Областей адресов), порядок ссылок (т. Е. Модули получат назначенное пространство в другом порядке) или операционной системы.
Удерживайте или не используете значения BSS, адрес останется неизменным для запуска процесса.
Я заметил, что вы ответили через 5 минут после того, как задали вопрос. Вы получите больше ответов, если оставите его открытым в течение некоторого времени, поскольку люди будут более мотивированы, чтобы улучшить ответы. – Adriaan
Спасибо за подсказку, я обязательно сделаю это в следующий раз. – Patrick