.\" Copyright (c) 1991, 1992, 1996, 1997, 1998, 2000 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH as 1 "29 March 1996" "Free Software Foundation" "GNU Development Tools"

.SH NAME
GNU as \- the portable GNU assembler.

.SH SYNOPSIS
.na
.B as
.RB "[\|" \-a "[\|" dhlns "\|]" \c
\&[\|\=\c
.I file\c
\&\|]\|]
.RB "[\|" \-D "\|]"
.RB "[\|" \-\-defsym\ SYM=VAL "\|]"
.RB "[\|" \-f "\|]"
.RB "[\|" \-\-gstabs "\|]"
.RB "[\|" \-I
.I path\c
\&\|]
.RB "[\|" \-K "\|]"
.RB "[\|" \-L "\|]"
.RB "[\|" \-M\ |\ \-\-mri "\|]"
.RB "[\|" \-o 
.I objfile\c
\&\|]
.RB "[\|" \-R "\|]"
.RB "[\|" \-\-traditional\-format "\|]"
.RB "[\|" \-v "\|]"
.RB "[\|" \-w "\|]"
.RB "[\|" \-\^\- "\ |\ " \c
.I files\c
\&\|.\|.\|.\|]

.I i960-only options:
.br
.RB "[\|" \-ACA "\||\|" \-ACA_A "\||\|" \-ACB\c
.RB "\||\|" \-ACC "\||\|" \-AKA "\||\|" \-AKB\c
.RB "\||\|" \-AKC "\||\|" \-AMC "\|]"
.RB "[\|" \-b "\|]"
.RB "[\|" \-no-relax "\|]"

.I m680x0-only options:
.br
.RB "[\|" \-l "\|]"
.RB "[\|" \-mc68000 "\||\|" \-mc68010 "\||\|" \-mc68020 "\|]"
.ad b

.SH DESCRIPTION
GNU \c
.B as\c
\& is really a family of assemblers.  
If you use (or have used) the GNU assembler on one architecture, you
should find a fairly similar environment when you use it on another
architecture.  Each version has much in common with the others,
including object file formats, most assembler directives (often called
\c
.I pseudo-ops)\c
\& and assembler syntax.  

For information on the syntax and pseudo-ops used by GNU \c
.B as\c
\&, see `\|\c
.B as\c
\|' entry in \c
.B info \c
(or the manual \c
.I
.I
Using as: The GNU Assembler\c
\&).

\c
.B as\c
\& is primarily intended to assemble the output of the GNU C
compiler \c
.B gcc\c
\& for use by the linker \c
.B ld\c
\&.  Nevertheless,
we've tried to make \c
.B as\c
\& assemble correctly everything that the native
assembler would.
This doesn't mean \c
.B as\c
\& always uses the same syntax as another
assembler for the same architecture; for example, we know of several
incompatible versions of 680x0 assembly language syntax.

Each time you run \c
.B as\c
\& it assembles exactly one source
program.  The source program is made up of one or more files.
(The standard input is also a file.)

If \c
.B as\c
\& is given no file names it attempts to read one input file
from the \c
.B as\c
\& standard input, which is normally your terminal.  You
may have to type \c
.B ctl-D\c
\& to tell \c
.B as\c
\& there is no more program
to assemble.  Use `\|\c
.B \-\^\-\c
\|' if you need to explicitly name the standard input file
in your command line.

.B as\c
\& may write warnings and error messages to the standard error
file (usually your terminal).  This should not happen when \c
.B as\c
\& is
run automatically by a compiler.  Warnings report an assumption made so
that \c
.B as\c
\& could keep assembling a flawed program; errors report a
grave problem that stops the assembly.

.SH OPTIONS
.TP
.BR \-a
Turn on assembly listings.  There are various suboptions.
.B d
omits debugging directives.
.B h
includes the high level source code; this is only available if the
source file can be found, and the code was compiled with
.B \-g.
.B l
includes an assembly listing.
.B n
omits forms processing.
.B s
includes a symbol listing.
.B =
.I file
sets the listing file name; this must be the last suboption.
The default suboptions are
.B hls.
.TP
.B \-D
This option is accepted only for script compatibility with calls to
other assemblers; it has no effect on \c
.B as\c
\&.
.TP
.B \-\-defsym SYM=VALUE
Define the symbol SYM to be VALUE before assembling the input file.
VALUE must be an integer constant.  As in C, a leading 0x indicates a
hexadecimal value, and a leading 0 indicates an octal value.
.TP
.B \-f
``fast''--skip preprocessing (assume source is compiler output).
.TP
.BI "\-I\ " path
Add 
.I path
to the search list for 
.B .include
directives.
.TP
.B \-\-gstabs
Generate stabs debugging information for each assembler line.  This
may help debugging assembler code, if the debugger can handle it.
.TP
.B \-K
Issue warnings when difference tables altered for long displacements.
.TP
.B \-L
Keep (in symbol table) local symbols, starting with `\|\c
.B L\c
\|'
.TP
.B \-M, \-\-mri
Assemble in MRI compatibility mode.
.TP
.BI "\-o\ " objfile
Name the object-file output from \c
.B as
.TP
.B \-R
Fold data section into text section
.TP
.B \-\-traditional\-format
Use same format as native assembler, when possible.
.TP
.B \-v
Announce \c
.B as\c
\& version
.TP
.B \-W, \-\-no-warn
Suppress warning messages.
.TP
.B \-\-fatal\-warnings
Consider warnings to be fatal.
.TP
.B \-\-warn
Just warn on warnings.
.TP
.IR "\-\^\-" "\ |\ " "files\|.\|.\|."
Source files to assemble, or standard input (\c
.BR "\-\^\-" ")"
.TP
.BI \-A var
.I
(When configured for Intel 960.)
Specify which variant of the 960 architecture is the target.
.TP
.B \-b
.I
(When configured for Intel 960.)
Add code to collect statistics about branches taken.
.TP
.B \-no-relax
.I
(When configured for Intel 960.)
Do not alter compare-and-branch instructions for long displacements;
error if necessary.
.TP
.B \-l
.I
(When configured for Motorola 68000).  
.br
Shorten references to undefined symbols, to one word instead of two.
.TP
.BR "\-mc68000" "\||\|" "\-mc68010" "\||\|" "\-mc68020"
.I
(When configured for Motorola 68000).  
.br
Specify what processor in the 68000 family is the target (default 68020)

.PP
Options may be in any order, and may be
before, after, or between file names.  The order of file names is
significant.

`\|\c
.B \-\^\-\c
\|' (two hyphens) by itself names the standard input file
explicitly, as one of the files for \c
.B as\c
\& to assemble.

Except for `\|\c
.B \-\^\-\c
\|' any command line argument that begins with a
hyphen (`\|\c
.B \-\c
\|') is an option.  Each option changes the behavior of
\c
.B as\c
\&.  No option changes the way another option works.  An
option is a `\|\c
.B \-\c
\|' followed by one or more letters; the case of
the letter is important.   All options are optional.

The `\|\c
.B \-o\c
\|' option expects exactly one file name to follow.  The file
name may either immediately follow the option's letter (compatible
with older assemblers) or it may be the next command argument (GNU
standard).  

These two command lines are equivalent:
.br
.B
as\ \ \-o\ \ my\-object\-file.o\ \ mumble.s
.br
.B
as\ \ \-omy\-object\-file.o\ \ mumble.s

.SH "SEE ALSO"
.RB "`\|" as "\|'"
entry in 
.B
info\c
\&; 
.I
Using as: The GNU Assembler\c
\&;
.BR gcc "(" 1 "),"
.BR ld "(" 1 ")."

.SH COPYING
Copyright (c) 1991, 1992, 2000 Free Software Foundation, Inc.
.PP
This document is distributed under the terms of the GNU Free
Documentation License, version 1.1.  That license is described in the
sources for this manual page, but it is not displayed here in order to
make this manual more consise.  Copies of this license can also be
obtained from: http://www.gnu.org/copyleft/.

\"  GNU Free Documentation License
\"    Version 1.1, March 2000

\"    Copyright (C) 2000  Free Software Foundation, Inc.
\"    59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
     
\"    Everyone is permitted to copy and distribute verbatim
\"    copies of this license document, but changing it is
\"    not allowed.
\"  .PP
\"  0. PREAMBLE
\"  .PP
\"  The purpose of this License is to make a manual, textbook, or other
\"  written document "free" in the sense of freedom: to assure everyone
\"  the effective freedom to copy and redistribute it, with or without
\"  modifying it, either commercially or noncommercially.  Secondarily,
\"  this License preserves for the author and publisher a way to get
\"  credit for their work, while not being considered responsible for
\"  modifications made by others.
\"  .PP
\"  This License is a kind of "copyleft", which means that derivative
\"  works of the document must themselves be free in the same sense.  It
\"  complements the GNU General Public License, which is a copyleft
\"  license designed for free software.
\"  .PP
\"  We have designed this License in order to use it for manuals for free
\"  software, because free software needs free documentation: a free
\"  program should come with manuals providing the same freedoms that the
\"  software does.  But this License is not limited to software manuals;
\"  it can be used for any textual work, regardless of subject matter or
\"  whether it is published as a printed book.  We recommend this License
\"  principally for works whose purpose is instruction or reference.
\"  .PP
\"  1. APPLICABILITY AND DEFINITIONS
\"  .PP
\"  This License applies to any manual or other work that contains a
\"  notice placed by the copyright holder saying it can be distributed
\"  under the terms of this License.  The "Document", below, refers to any
\"  such manual or work.  Any member of the public is a licensee, and is
\"  addressed as "you".
\"  .PP
\"  A "Modified Version" of the Document means any work containing the
\"  Document or a portion of it, either copied verbatim, or with
\"  modifications and/or translated into another language.
\"  .PP
\"  A "Secondary Section" is a named appendix or a front-matter section of
\"  the Document that deals exclusively with the relationship of the
\"  publishers or authors of the Document to the Document's overall subject
\"  (or to related matters) and contains nothing that could fall directly
\"  within that overall subject.  (For example, if the Document is in part a
\"  textbook of mathematics, a Secondary Section may not explain any
\"  mathematics.)  The relationship could be a matter of historical
\"  connection with the subject or with related matters, or of legal,
\"  commercial, philosophical, ethical or political position regarding
\"  them.
\"  .PP
\"  The "Invariant Sections" are certain Secondary Sections whose titles
\"  are designated, as being those of Invariant Sections, in the notice
\"  that says that the Document is released under this License.
\"  .PP
\"  The "Cover Texts" are certain short passages of text that are listed,
\"  as Front-Cover Texts or Back-Cover Texts, in the notice that says that
\"  the Document is released under this License.
\"  .PP
\"  A "Transparent" copy of the Document means a machine-readable copy,
\"  represented in a format whose specification is available to the
\"  general public, whose contents can be viewed and edited directly and
\"  straightforwardly with generic text editors or (for images composed of
\"  pixels) generic paint programs or (for drawings) some widely available
\"  drawing editor, and that is suitable for input to text formatters or
\"  for automatic translation to a variety of formats suitable for input
\"  to text formatters.  A copy made in an otherwise Transparent file
\"  format whose markup has been designed to thwart or discourage
\"  subsequent modification by readers is not Transparent.  A copy that is
\"  not "Transparent" is called "Opaque".
\"  .PP
\"  Examples of suitable formats for Transparent copies include plain
\"  ASCII without markup, Texinfo input format, LaTeX input format, SGML
\"  or XML using a publicly available DTD, and standard-conforming simple
\"  HTML designed for human modification.  Opaque formats include
\"  PostScript, PDF, proprietary formats that can be read and edited only
\"  by proprietary word processors, SGML or XML for which the DTD and/or
\"  processing tools are not generally available, and the
\"  machine-generated HTML produced by some word processors for output
\"  purposes only.
\"  .PP
\"  The "Title Page" means, for a printed book, the title page itself,
\"  plus such following pages as are needed to hold, legibly, the material
\"  this License requires to appear in the title page.  For works in
\"  formats which do not have any title page as such, "Title Page" means
\"  the text near the most prominent appearance of the work's title,
\"  preceding the beginning of the body of the text.
\"  .PP
\"  2. VERBATIM COPYING
\"  .PP
\"  You may copy and distribute the Document in any medium, either
\"  commercially or noncommercially, provided that this License, the
\"  copyright notices, and the license notice saying this License applies
\"  to the Document are reproduced in all copies, and that you add no other
\"  conditions whatsoever to those of this License.  You may not use
\"  technical measures to obstruct or control the reading or further
\"  copying of the copies you make or distribute.  However, you may accept
\"  compensation in exchange for copies.  If you distribute a large enough
\"  number of copies you must also follow the conditions in section 3.
\"  .PP
\"  You may also lend copies, under the same conditions stated above, and
\"  you may publicly display copies.
\"  .PP
\"  3. COPYING IN QUANTITY
\"  .PP
\"  If you publish printed copies of the Document numbering more than 100,
\"  and the Document's license notice requires Cover Texts, you must enclose
\"  the copies in covers that carry, clearly and legibly, all these Cover
\"  Texts: Front-Cover Texts on the front cover, and Back-Cover Texts on
\"  the back cover.  Both covers must also clearly and legibly identify
\"  you as the publisher of these copies.  The front cover must present
\"  the full title with all words of the title equally prominent and
\"  visible.  You may add other material on the covers in addition.
\"  Copying with changes limited to the covers, as long as they preserve
\"  the title of the Document and satisfy these conditions, can be treated
\"  as verbatim copying in other respects.
\"  .PP
\"  If the required texts for either cover are too voluminous to fit
\"  legibly, you should put the first ones listed (as many as fit
\"  reasonably) on the actual cover, and continue the rest onto adjacent
\"  pages.
\"  .PP
\"  If you publish or distribute Opaque copies of the Document numbering
\"  more than 100, you must either include a machine-readable Transparent
\"  copy along with each Opaque copy, or state in or with each Opaque copy
\"  a publicly-accessible computer-network location containing a complete
\"  Transparent copy of the Document, free of added material, which the
\"  general network-using public has access to download anonymously at no
\"  charge using public-standard network protocols.  If you use the latter
\"  option, you must take reasonably prudent steps, when you begin
\"  distribution of Opaque copies in quantity, to ensure that this
\"  Transparent copy will remain thus accessible at the stated location
\"  until at least one year after the last time you distribute an Opaque
\"  copy (directly or through your agents or retailers) of that edition to
\"  the public.
\"  .PP
\"  It is requested, but not required, that you contact the authors of the
\"  Document well before redistributing any large number of copies, to give
\"  them a chance to provide you with an updated version of the Document.
\"  .PP
\"  4. MODIFICATIONS
\"  .PP
\"  You may copy and distribute a Modified Version of the Document under
\"  the conditions of sections 2 and 3 above, provided that you release
\"  the Modified Version under precisely this License, with the Modified
\"  Version filling the role of the Document, thus licensing distribution
\"  and modification of the Modified Version to whoever possesses a copy
\"  of it.  In addition, you must do these things in the Modified Version:
\"  .PP
\"  A. Use in the Title Page (and on the covers, if any) a title distinct
\"  from that of the Document, and from those of previous versions
\"  (which should, if there were any, be listed in the History section
\"  of the Document).  You may use the same title as a previous version
\"  if the original publisher of that version gives permission.
\"  .PP
\"  B. List on the Title Page, as authors, one or more persons or entities
\"  responsible for authorship of the modifications in the Modified
\"  Version, together with at least five of the principal authors of the
\"  Document (all of its principal authors, if it has less than five).
\"  .PP
\"  C. State on the Title page the name of the publisher of the
\"  Modified Version, as the publisher.
\"  .PP
\"  D. Preserve all the copyright notices of the Document.
\"  .PP
\"  E. Add an appropriate copyright notice for your modifications
\"  adjacent to the other copyright notices.
\"  .PP
\"  F. Include, immediately after the copyright notices, a license notice
\"  giving the public permission to use the Modified Version under the
\"  terms of this License, in the form shown in the Addendum below.
\"  Preserve in that license notice the full lists of Invariant Sections
\"  and required Cover Texts given in the Document's license notice.
\"  .PP
\"  H. Include an unaltered copy of this License.
\"  .PP
\"  I. Preserve the section entitled "History", and its title, and add to
\"  it an item stating at least the title, year, new authors, and
\"  publisher of the Modified Version as given on the Title Page.  If
\"  there is no section entitled "History" in the Document, create one
\"  stating the title, year, authors, and publisher of the Document as
\"  given on its Title Page, then add an item describing the Modified
\"  Version as stated in the previous sentence.
\"  .PP
\"  J. Preserve the network location, if any, given in the Document for
\"  public access to a Transparent copy of the Document, and likewise
\"  the network locations given in the Document for previous versions
\"  it was based on.  These may be placed in the "History" section.
\"  You may omit a network location for a work that was published at
\"  least four years before the Document itself, or if the original
\"  publisher of the version it refers to gives permission.
\"  .PP
\"  K. In any section entitled "Acknowledgements" or "Dedications",
\"  preserve the section's title, and preserve in the section all the
\"  substance and tone of each of the contributor acknowledgements
\"  and/or dedications given therein.
\"  .PP
\"  L. Preserve all the Invariant Sections of the Document,
\"  unaltered in their text and in their titles.  Section numbers
\"  or the equivalent are not considered part of the section titles.
\"  .PP
\"  M. Delete any section entitled "Endorsements".  Such a section
\"  may not be included in the Modified Version.
\"  .PP
\"  N. Do not retitle any existing section as "Endorsements"
\"  or to conflict in title with any Invariant Section.
\"  .PP
\"  If the Modified Version includes new front-matter sections or
\"  appendices that qualify as Secondary Sections and contain no material
\"  copied from the Document, you may at your option designate some or all
\"  of these sections as invariant.  To do this, add their titles to the
\"  list of Invariant Sections in the Modified Version's license notice.
\"  These titles must be distinct from any other section titles.
\"  .PP
\"  You may add a section entitled "Endorsements", provided it contains
\"  nothing but endorsements of your Modified Version by various
\"  parties--for example, statements of peer review or that the text has
\"  been approved by an organization as the authoritative definition of a
\"  standard.
\"  .PP
\"  You may add a passage of up to five words as a Front-Cover Text, and a
\"  passage of up to 25 words as a Back-Cover Text, to the end of the list
\"  of Cover Texts in the Modified Version.  Only one passage of
\"  Front-Cover Text and one of Back-Cover Text may be added by (or
\"  through arrangements made by) any one entity.  If the Document already
\"  includes a cover text for the same cover, previously added by you or
\"  by arrangement made by the same entity you are acting on behalf of,
\"  you may not add another; but you may replace the old one, on explicit
\"  permission from the previous publisher that added the old one.
\"  .PP
\"  The author(s) and publisher(s) of the Document do not by this License
\"  give permission to use their names for publicity for or to assert or
\"  imply endorsement of any Modified Version.
\"  .PP

\"  5. COMBINING DOCUMENTS
\"  .PP
\"  You may combine the Document with other documents released under this
\"  License, under the terms defined in section 4 above for modified
\"  versions, provided that you include in the combination all of the
\"  Invariant Sections of all of the original documents, unmodified, and
\"  list them all as Invariant Sections of your combined work in its
\"  license notice.
\"  .PP
\"  The combined work need only contain one copy of this License, and
\"  multiple identical Invariant Sections may be replaced with a single
\"  copy.  If there are multiple Invariant Sections with the same name but
\"  different contents, make the title of each such section unique by
\"  adding at the end of it, in parentheses, the name of the original
\"  author or publisher of that section if known, or else a unique number.
\"  Make the same adjustment to the section titles in the list of
\"  Invariant Sections in the license notice of the combined work.
\"  .PP
\"  In the combination, you must combine any sections entitled "History"
\"  in the various original documents, forming one section entitled
\"  "History"; likewise combine any sections entitled "Acknowledgements",
\"  and any sections entitled "Dedications".  You must delete all sections
\"  entitled "Endorsements."
\"  .PP

\"  6. COLLECTIONS OF DOCUMENTS
\"  .PP
\"  You may make a collection consisting of the Document and other documents
\"  released under this License, and replace the individual copies of this
\"  License in the various documents with a single copy that is included in
\"  the collection, provided that you follow the rules of this License for
\"  verbatim copying of each of the documents in all other respects.
\"  .PP
\"  You may extract a single document from such a collection, and distribute
\"  it individually under this License, provided you insert a copy of this
\"  License into the extracted document, and follow this License in all
\"  other respects regarding verbatim copying of that document.
\"  .PP

\"  7. AGGREGATION WITH INDEPENDENT WORKS
\"  .PP
\"  A compilation of the Document or its derivatives with other separate
\"  and independent documents or works, in or on a volume of a storage or
\"  distribution medium, does not as a whole count as a Modified Version
\"  of the Document, provided no compilation copyright is claimed for the
\"  compilation.  Such a compilation is called an "aggregate", and this
\"  License does not apply to the other self-contained works thus compiled
\"  with the Document, on account of their being thus compiled, if they
\"  are not themselves derivative works of the Document.
\"  .PP
\"  If the Cover Text requirement of section 3 is applicable to these
\"  copies of the Document, then if the Document is less than one quarter
\"  of the entire aggregate, the Document's Cover Texts may be placed on
\"  covers that surround only the Document within the aggregate.
\"  Otherwise they must appear on covers around the whole aggregate.
\"  .PP

\"  8. TRANSLATION
\"  .PP
\"  Translation is considered a kind of modification, so you may
\"  distribute translations of the Document under the terms of section 4.
\"  Replacing Invariant Sections with translations requires special
\"  permission from their copyright holders, but you may include
\"  translations of some or all Invariant Sections in addition to the
\"  original versions of these Invariant Sections.  You may include a
\"  translation of this License provided that you also include the
\"  original English version of this License.  In case of a disagreement
\"  between the translation and the original English version of this
\"  License, the original English version will prevail.
\"  .PP

\"  9. TERMINATION
\"  .PP
\"  You may not copy, modify, sublicense, or distribute the Document except
\"  as expressly provided for under this License.  Any other attempt to
\"  copy, modify, sublicense or distribute the Document is void, and will
\"  automatically terminate your rights under this License.  However,
\"  parties who have received copies, or rights, from you under this
\"  License will not have their licenses terminated so long as such
\"  parties remain in full compliance.
\"  .PP

\"  10. FUTURE REVISIONS OF THIS LICENSE
\"  .PP
\"  The Free Software Foundation may publish new, revised versions
\"  of the GNU Free Documentation License from time to time.  Such new
\"  versions will be similar in spirit to the present version, but may
\"  differ in detail to address new problems or concerns.  See
\"  http://www.gnu.org/copyleft/.
\"  .PP
\"  Each version of the License is given a distinguishing version number.
\"  If the Document specifies that a particular numbered version of this
\"  License "or any later version" applies to it, you have the option of
\"  following the terms and conditions either of that specified version or
\"  of any later version that has been published (not as a draft) by the
\"  Free Software Foundation.  If the Document does not specify a version
\"  number of this License, you may choose any version ever published (not
\"  as a draft) by the Free Software Foundation.
\"  .PP

\"  ADDENDUM: How to use this License for your documents
\"  .PP
\"  To use this License in a document you have written, include a copy of
\"  the License in the document and put the following copyright and
\"  license notices just after the title page:
\"  .PP
\"      Copyright (c)  YEAR  YOUR NAME.
\"      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 the Invariant Sections being LIST THEIR TITLES,
\"      with the Front-Cover Texts being LIST, and with the
\"      Back-Cover Texts being LIST.  A copy of the license
\"      is included in the section entitled "GNU Free
\"      Documentation License".
\"  .PP
\"  If you have no Invariant Sections, write "with no Invariant Sections"
\"  instead of saying which ones are invariant.  If you have no
\"  Front-Cover Texts, write "no Front-Cover Texts" instead of
\"  "Front-Cover Texts being LIST"; likewise for Back-Cover Texts.
\"  .PP
\"  If your document contains nontrivial examples of program code, we
\"  recommend releasing these examples in parallel under your choice of
\"  free software license, such as the GNU General Public License,
\"  to permit their use in free software.
