The bss section is used for local common variable storage. You may allocate address space in the bss section, but you may not dictate data to load into it before your program executes. When your program starts running, all the contents of the bss section are zeroed bytes.
The .lcomm
pseudo-op defines a symbol in the bss section; see
.lcomm
.
The .comm
pseudo-op may be used to declare a common symbol, which is
another form of uninitialized symbol; see .comm
.
When assembling for a target which supports multiple sections, such as ELF or
COFF, you may switch into the .bss
section and define symbols as usual;
see .section
. You may only assemble zero values into the
section. Typically the section will only contain symbol definitions and
.skip
directives (see .skip
).