as.info: Section

Go forward to Set
Go backward to Scl
Go up to Pseudo Ops
Go to the top op as

`.section NAME' (COFF version)

   Use the `.section' directive to assemble the following code into a
section named NAME.
   This directive is only supported for targets that actually support
arbitrarily named sections; on `a.out' targets, for example, it is not
accepted, even with a standard `a.out' section name.
   For COFF targets, the `.section' directive is used in one of the
following ways:
     .section NAME[, "FLAGS"]
     .section NAME[, SUBSEGMENT]
   If the optional argument is quoted, it is taken as flags to use for
the section.  Each flag is a single character.  The following flags are
recognized:
`b'
     bss section (uninitialized data)
`n'
     section is not loaded
`w'
     writable section
`d'
     data section
`r'
     read-only section
`x'
     executable section
`s'
     shared section (meaningful for PE targets)
   If no flags are specified, the default flags depend upon the section
name.  If the section name is not recognized, the default will be for
the section to be loaded and writable.
   If the optional argument to the `.section' directive is not quoted,
it is taken as a subsegment number (*note Sub-Sections::).

`.section NAME' (ELF version)

   This is one of the ELF section stack manipulation directives.  The
others are `.subsection' (*note SubSection::), `.pushsection' (*note
PushSection::), `.popsection' (*note PopSection::), and `.previous'
(*note Previous::).
   For ELF targets, the `.section' directive is used like this:
     .section NAME [, "FLAGS"[, @TYPE]]
   The optional FLAGS argument is a quoted string which may contain any
combination of the following characters:
`a'
     section is allocatable
`w'
     section is writable
`x'
     section is executable
   The optional TYPE argument may contain one of the following
constants:
`@progbits'
     section contains data
`@nobits'
     section does not contain data (i.e., section only occupies space)
   If no flags are specified, the default flags depend upon the section
name.  If the section name is not recognized, the default will be for
the section to have none of the above flags: it will not be allocated
in memory, nor writable, nor executable.  The section will contain data.
   For ELF targets, the assembler supports another type of `.section'
directive for compatibility with the Solaris assembler:
     .section "NAME"[, FLAGS...]
   Note that the section name is quoted.  There may be a sequence of
comma separated flags:
`#alloc'
     section is allocatable
`#write'
     section is writable
`#execinstr'
     section is executable
   This directive replaces the current section and subsection.  The
replaced section and subsection are pushed onto the section stack.  See
the contents of the gas testsuite directory `gas/testsuite/gas/elf' for
some examples of how this directive and the other section stack
directives work.