BSS - это заполнитель, определенный в формате вашего исполняемого файла (или ELF). Таким образом, он не занимает дисковое пространство, а только указывает, какая область памяти должна быть выделена компоновщиком или загрузчиком.
Точная операция зависит от операционной системы. Поскольку вы ссылаетесь на ELF, я предполагаю, что это для использования во встроенной системе. Если вы строите для кода ROMmable, ваш cmd-файл компоновщика отобразит BSS в область статического адреса.
В случае, если вы строите для операционной системы (например, Linux), загрузчик из операционной системы выполнит этап перемещения, на котором он сопоставляет все местоположения, помеченные как относительные в исключительном формате, с физическими или логическими местоположениями в памяти. 1005 *
Поскольку вы упоминаете, что всегда видите одно и то же значение, это означает, что процесс повторяется для вашей системы. Ожидайте увидеть изменения при изменении файлов компоновщика (т. Е. Адресных областей), порядка компоновки (т. Е. Модули получат назначенное пространство в другом порядке) или операционной системы.
Независимо от того, используете вы значения BSS или нет, адрес останется прежним для запускаемого вами процесса.