<html lang="en">
<head>
<title>listing - 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="Invoking.html#Invoking" title="Invoking">
<link rel="prev" href="L.html#L" title="L">
<link rel="next" href="M.html#M" title="M">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".

Copyright (C) 1991, 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
2000, 2001, 2002, 2006, 2007, 2008, 2009, 2010 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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="listing"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="M.html#M">M</a>,
Previous:&nbsp;<a rel="previous" accesskey="p" href="L.html#L">L</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Invoking.html#Invoking">Invoking</a>
<hr>
</div>

<h3 class="section">2.8 Configuring listing output: <samp><span class="option">--listing</span></samp></h3>

<p>The listing feature of the assembler can be enabled via the command line switch
&lsquo;<samp><span class="samp">-a</span></samp>&rsquo; (see <a href="a.html#a">a</a>).  This feature combines the input source file(s) with a
hex dump of the corresponding locations in the output object file, and displays
them as a listing file.  The format of this listing can be controlled by
directives inside the assembler source (i.e., <code>.list</code> (see <a href="List.html#List">List</a>),
<code>.title</code> (see <a href="Title.html#Title">Title</a>), <code>.sbttl</code> (see <a href="Sbttl.html#Sbttl">Sbttl</a>),
<code>.psize</code> (see <a href="Psize.html#Psize">Psize</a>), and
<code>.eject</code> (see <a href="Eject.html#Eject">Eject</a>) and also by the following switches:

     <dl>
<dt><code>--listing-lhs-width=&lsquo;</code><samp><span class="samp">number</span></samp><code>&rsquo;</code><dd><a name="index-g_t_002d_002dlisting_002dlhs_002dwidth-71"></a><a name="index-Width-of-first-line-disassembly-output-72"></a>Sets the maximum width, in words, of the first line of the hex byte dump.  This
dump appears on the left hand side of the listing output.

     <br><dt><code>--listing-lhs-width2=&lsquo;</code><samp><span class="samp">number</span></samp><code>&rsquo;</code><dd><a name="index-g_t_002d_002dlisting_002dlhs_002dwidth2-73"></a><a name="index-Width-of-continuation-lines-of-disassembly-output-74"></a>Sets the maximum width, in words, of any further lines of the hex byte dump for
a given input source line.  If this value is not specified, it defaults to being
the same as the value specified for &lsquo;<samp><span class="samp">--listing-lhs-width</span></samp>&rsquo;.  If neither
switch is used the default is to one.

     <br><dt><code>--listing-rhs-width=&lsquo;</code><samp><span class="samp">number</span></samp><code>&rsquo;</code><dd><a name="index-g_t_002d_002dlisting_002drhs_002dwidth-75"></a><a name="index-Width-of-source-line-output-76"></a>Sets the maximum width, in characters, of the source line that is displayed
alongside the hex dump.  The default value for this parameter is 100.  The
source line is displayed on the right hand side of the listing output.

     <br><dt><code>--listing-cont-lines=&lsquo;</code><samp><span class="samp">number</span></samp><code>&rsquo;</code><dd><a name="index-g_t_002d_002dlisting_002dcont_002dlines-77"></a><a name="index-Maximum-number-of-continuation-lines-78"></a>Sets the maximum number of continuation lines of hex dump that will be
displayed for a given single line of source input.  The default value is 4. 
</dl>

   </body></html>

