as - the portable GNU assembler


as [-DfKLMRvw] [-a[dhlns] [=file]] [--defsym SYM=VAL]
   [-I path] [-M|--mri] [-o objfile]

i960-onlyoptions: [-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB|-AKC|-AMC] [-b] [-no-relax]
m680x0-onlyoptions: [-l] [-mc68000|-mc68010|-mc68020]


GNU as(1) is really a family of assemblers. If you have use 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 pseudo-ops) and assembler syntax.

For information on the syntax and pseudo-ops used by GNU as(1), see as(1) entry in info (or the manual Using as: The GNU Assembler).

as(1) is primarily intended to assemble the output of the GNU C compiler gcc(1) for use by the linker ld(1). Nevertheless, we've tried to make as(1) assemble correctly everything that the native assembler would. This does not mean, however, that as(1) always uses the same syntax as another assembler for the same architecture. For example, there are several known incompatible versions of 680x0 assembly language syntax.

Each time you run as(1), 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 as(1) is given no file names, it attempts to read one input file from the as(1) standard input, which is normally your terminal. You might have to type Control-D to tell as(1) that there is no more program to assemble. Use two hyphens (--) if you must explicitly name the standard input file in your command line.

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


-a suboptions
Turn on assembly listings. There are various suboptions. d omits debugging directives. h includes the high-level source code; this is only available if the source file can be found, and the code was compiled with -g. l includes an assembly listing. n omits forms processing. s includes a symbol listing. = file sets the listing file name; this must be the last suboption. The default suboptions are hls.
This option is accepted only for script compatibility with calls to other assemblers; it has no effect on as(1).
--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.
Fast. Skip preprocessing (assume source is compiler output).
-I path
Add path to the search list for .include directives.
Issue warnings when difference tables altered for long displacements.
Keep (in symbol table) local symbols, starting with L.
-M, --mri
Assemble in MRI-compatibility mode.
-o objfile
Name the object-file output from as(1).
Fold data section into text section.
Announce as(1) version.
Suppress warning messages.
Source files to assemble, or standard input (--)
-A var
(When configured for Intel 960.)
Specify which variant of the 960 architecture is the target.
(When configured for Intel 960.)
Add code to collect statistics about branches taken.
(When configured for Intel 960.)
Do not alter compare-and-branch instructions for long displacements; error if necessary.
(When configured for Motorola 68000).
Shorten references to undefined symbols to one word instead of two.
(When configured for Motorola 68000).
Specify which processor in the 68000 family is the target (default 68020).

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

The option -- (two hyphens) by itself names the standard input file explicitly, as one of the files for as(1) to assemble.

Except for -- (two hyphens), any command-line argument that begins with a hyphen (-) is an option. Each option changes the behavior of as(1). No option changes the way another option works. An option is a - followed by one or more letters; the case of the letter is important. All options are, in fact, optional.

The -o 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:

as  -o  my-object-file.o  mumble.s
as  -omy-object-file.o  mumble.s


Copyright (c) 1991, 1992 Free Software Foundation, Inc.

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.

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.

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.




as(1) entry in info Using as: The GNU Assembler.