<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- This file documents the GNU Assembler "as".

Copyright (C) 1991-2013 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".
 -->
<!-- Created by GNU Texinfo 5.2, http://www.gnu.org/software/texinfo/ -->
<head>
<title>Using as: Org</title>

<meta name="description" content="Using as: Org">
<meta name="keywords" content="Using as: Org">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="AS-Index.html#AS-Index" rel="index" title="AS Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
<link href="Pseudo-Ops.html#Pseudo-Ops" rel="up" title="Pseudo Ops">
<link href="P2align.html#P2align" rel="next" title="P2align">
<link href="Offset.html#Offset" rel="prev" title="Offset">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>


</head>

<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Org"></a>
<div class="header">
<p>
Next: <a href="P2align.html#P2align" accesskey="n" rel="next">P2align</a>, Previous: <a href="Offset.html#Offset" accesskey="p" rel="prev">Offset</a>, Up: <a href="Pseudo-Ops.html#Pseudo-Ops" accesskey="u" rel="up">Pseudo Ops</a> &nbsp; [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="AS-Index.html#AS-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="g_t_002eorg-new_002dlc-_002c-fill"></a>
<h3 class="section">7.85 <code>.org <var>new-lc</var> , <var>fill</var></code></h3>

<a name="index-org-directive"></a>
<a name="index-location-counter_002c-advancing"></a>
<a name="index-advancing-location-counter"></a>
<a name="index-current-address_002c-advancing"></a>
<p>Advance the location counter of the current section to
<var>new-lc</var>.  <var>new-lc</var> is either an absolute expression or an
expression with the same section as the current subsection.  That is,
you can&rsquo;t use <code>.org</code> to cross sections: if <var>new-lc</var> has the
wrong section, the <code>.org</code> directive is ignored.  To be compatible
with former assemblers, if the section of <var>new-lc</var> is absolute,
<code>as</code> issues a warning, then pretends the section of <var>new-lc</var>
is the same as the current subsection.
</p>
<p><code>.org</code> may only increase the location counter, or leave it
unchanged; you cannot use <code>.org</code> to move the location counter
backwards.
</p>
<p>Because <code>as</code> tries to assemble programs in one pass, <var>new-lc</var>
may not be undefined.  If you really detest this restriction we eagerly await
a chance to share your improved assembler.
</p>
<p>Beware that the origin is relative to the start of the section, not
to the start of the subsection.  This is compatible with other
people&rsquo;s assemblers.
</p>
<p>When the location counter (of the current subsection) is advanced, the
intervening bytes are filled with <var>fill</var> which should be an
absolute expression.  If the comma and <var>fill</var> are omitted,
<var>fill</var> defaults to zero.
</p>



</body>
</html>
