.\" Copyright (c) 1991, 1992, 1996, 1997, 1998 Free Software Foundation
.\" See section COPYING for conditions for redistribution
.TH as 1 "29 March 1996" "cygnus support" "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 Free Software Foundation, Inc.
.PP
Permission is granted to make and distribute verbatim copies of
this manual provided the copyright notice and this permission notice
are preserved on all copies.
.PP
Permission is granted to copy and distribute modified versions of this
manual under the conditions for verbatim copying, provided that the
entire resulting derived work is distributed under the terms of a
permission notice identical to this one.
.PP
Permission is granted to copy and distribute translations of this
manual into another language, under the above conditions for modified
versions, except that this permission notice may be included in
translations approved by the Free Software Foundation instead of in
the original English.
