neingeist
/
arduinisten
Archived
1
0
Fork 0
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

73 lines
3.5 KiB
HTML

<html lang="en">
<head>
<title>Comm - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.7">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Pseudo-Ops.html#Pseudo-Ops" title="Pseudo Ops">
<link rel="prev" href="Byte.html#Byte" title="Byte">
<link rel="next" href="CFI-directives.html#CFI-directives" title="CFI directives">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991, 92, 93, 94, 95, 96, 97, 98, 99, 2000, 2001, 2002,
2006, 2007 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.1
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''.
man end-->
<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; }
--></style>
</head>
<body>
<div class="node">
<p>
<a name="Comm"></a>Next:&nbsp;<a rel="next" accesskey="n" href="CFI-directives.html#CFI-directives">CFI directives</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="Byte.html#Byte">Byte</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Pseudo-Ops.html#Pseudo-Ops">Pseudo Ops</a>
<hr><br>
</div>
<h3 class="section">7.8 <code>.comm </code><var>symbol</var><code> , </code><var>length</var> </h3>
<p><a name="index-_0040code_007bcomm_007d-directive-288"></a><a name="index-symbol_002c-common-289"></a><code>.comm</code> declares a common symbol named <var>symbol</var>. When linking, a
common symbol in one object file may be merged with a defined or common symbol
of the same name in another object file. If <code>ld</code> does not see a
definition for the symbol&ndash;just one or more common symbols&ndash;then it will
allocate <var>length</var> bytes of uninitialized memory. <var>length</var> must be an
absolute expression. If <code>ld</code> sees multiple common symbols with
the same name, and they do not all have the same size, it will allocate space
using the largest size.
<p>When using ELF, the <code>.comm</code> directive takes an optional third argument.
This is the desired alignment of the symbol, specified as a byte boundary (for
example, an alignment of 16 means that the least significant 4 bits of the
address should be zero). The alignment must be an absolute expression, and it
must be a power of two. If <code>ld</code> allocates uninitialized memory
for the common symbol, it will use the alignment when placing the symbol. If
no alignment is specified, <span class="command">as</span> will set the alignment to the
largest power of two less than or equal to the size of the symbol, up to a
maximum of 16.
<p>The syntax for <code>.comm</code> differs slightly on the HPPA. The syntax is
<var>symbol</var><span class="samp"> .comm, </span><var>length</var>; <var>symbol</var> is optional.
</body></html>