Текст программы делится на секции — кода, данных, неинициализированных данных, отладочных символов и т.д. Секции также могут делиться далее на подсекции, располагающиеся непосредственно друг за другом, но это редко используется.
.data подсекция
Следующие команды будут ассемблироваться в секцию данных. Если подсекция не указана, данные ассемблируются в нулевую подсекцию.
.text подсекция
Следующие команды будут ассемблироваться в секцию кода.
.section имя, флаги, @тип или .section "имя", флаги
Общее определение новой секции:
флаги (для ELF):
w или #write — разрешена запись;
х или #execinstr — разрешено исполнение;
а или #alloc — разрешено динамическое выделение памяти (.bss);
тип (для ELF):
©progbits — содержит данные;
@nobits — не содержит данные (только занимает место).