blob: 1717d7058de74abb52d2d369561e315d88d91f59 [file] [log] [blame]
<html lang="en">
<head>
<title>bss - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Sections.html#Sections" title="Sections">
<link rel="prev" href="Sub_002dSections.html#Sub_002dSections" title="Sub-Sections">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991-2019 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled ``GNU Free Documentation License''.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="bss"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="Sub_002dSections.html#Sub_002dSections">Sub-Sections</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Sections.html#Sections">Sections</a>
<hr>
</div>
<h3 class="section">4.5 bss Section</h3>
<p><a name="index-bss-section-208"></a><a name="index-common-variable-storage-209"></a>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.
<p>The <code>.lcomm</code> pseudo-op defines a symbol in the bss section; see
<a href="Lcomm.html#Lcomm"><code>.lcomm</code></a>.
<p>The <code>.comm</code> pseudo-op may be used to declare a common symbol, which is
another form of uninitialized symbol; see <a href="Comm.html#Comm"><code>.comm</code></a>.
<p>When assembling for a target which supports multiple sections, such as ELF or
COFF, you may switch into the <code>.bss</code> section and define symbols as usual;
see <a href="Section.html#Section"><code>.section</code></a>. You may only assemble zero values into the
section. Typically the section will only contain symbol definitions and
<code>.skip</code> directives (see <a href="Skip.html#Skip"><code>.skip</code></a>).
</body></html>