Разница между .section .text и .text с газом - PullRequest
0 голосов
/ 12 сентября 2018

Насколько я могу судить по objdump, с использованием газа

.section .text

и

.text

эквивалентны.Это правда?

Из руководства по газу .section name :

Используйте директиву .section, чтобы собрать следующий код в раздел с именем имя .

Из руководства по газу .text подраздел :

Указывает as собратьследующие утверждения в конце текстового подраздела пронумерованы подразделом , что является абсолютным выражением.Если подраздел опущен, используется номер подраздела 0.

Мой вопрос также относится к .data.

1 Ответ

0 голосов
/ 12 сентября 2018

Я думаю, что есть небольшая разница.

.section позволяет программисту указать любое имя раздела и, таким образом, как указано в документации, не поддерживается для формата a.out (в то время как для COFF и ELF ).

Эта директива поддерживается только для целей, которые фактически поддерживают произвольно названные разделы;например, для целей a.out он не принимается, даже при стандартном имени раздела a.out.

.text напротив, всегда обозначает раздел кода независимо от его фактического имени вформат вывода.

Учитывая, что a.out использовался до того, как ELF был добавлен еще в '96, я не буду рассматриватьСовместимость с таким старым форматом проблема.

.text и .data сохраняют несколько нажатий клавиш, но для согласованности прекрасно всегда использовать .section.

...