cross-as (1) - Linux Manuals
cross-as: the portable GNU assembler.
NAME
AS - the portable GNU assembler.
SYNOPSIS
as [-a[cdghlns][=file]] [--alternate] [-D]
Target AArch64 options:
[-EB|-EL]
[-mabi=ABI]
Target Alpha options:
Target ARC options:
Target ARM options:
Target Blackfin options:
Target CRIS options:
Target D10V options:
Target D30V options:
Target EPIPHANY options:
Target H8/300 options:
Target i386 options:
Target i960 options:
Target IA-64 options:
Target IP2K options:
Target M32C options:
Target M32R options:
Target M680X0 options:
Target M68HC11 options:
Target MCORE options:
Target Meta options:
Target MIPS options:
Target MMIX options:
Target Nios II options:
Target NDS32 options:
Target PDP11 options:
Target picoJava options:
Target PowerPC options:
Target RL78 options:
Target RX options:
Target s390 options:
Target SCORE options:
Target SPARC options:
Target TIC54X options:
Target TIC6X options:
Target TILE-Gx options:
Target Visium options:
Target Xtensa options:
Target Z80 options:
as is primarily intended to assemble the output of the
GNU C compiler "gcc" for use by the linker
"ld". Nevertheless, we've tried to make as
assemble correctly everything that other assemblers for the same
machine would assemble.
Any exceptions are documented explicitly.
This doesn't mean as 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 as it assembles exactly one source
program. The source program is made up of one or more files.
(The standard input is also a file.)
You give as a command line that has zero or more input file
names. The input files are read (from left file name to right). A
command line argument (in any position) that has no special meaning
is taken to be an input file name.
If you give as no file names it attempts to read one input file
from the as standard input, which is normally your terminal. You
may have to type ctl-D to tell as there is no more program
to assemble.
Use -- if you need to explicitly name the standard input file
in your command line.
If the source is empty, as produces a small, empty object
file.
as may write warnings and error messages to the standard error
file (usually your terminal). This should not happen when a compiler
runs as automatically. Warnings report an assumption made so
that as could keep assembling a flawed program; errors report a
grave problem that stops the assembly.
If you are invoking as via the GNU C compiler,
you can use the -Wa option to pass arguments through to the assembler.
The assembler arguments must be separated from each other (and the -Wa)
by commas. For example:
This passes two options to the assembler: -alh (emit a listing to
standard output with high-level and assembly source) and -L (retain
local symbols in the symbol table).
Usually you do not need to use this -Wa mechanism, since many compiler
command-line options are automatically passed to the assembler by the compiler.
(You can call the GNU compiler driver with the -v option to see
precisely what options it passes to each compilation pass, including the
assembler.)
[-mcpu]
[-mdebug
[-replace
[-relax]
[-F]
[-mcpu=cpu]
[-mA6|-mARC600|-mARC601|-mA7|-mARC700|-mEM|-mHS]
[-mcode-density]
[-EB|-EL]
[-mcpu=processor[+extension...]]
[-march=architecture[+extension...]]
[-mfpu=floating-point-format]
[-mfloat-abi=abi]
[-meabi=ver]
[-mthumb]
[-EB|-EL]
[-mapcs-32|-mapcs-26|-mapcs-float|
[-mthumb-interwork]
[-mcpu=processor[-sirevision]]
[-mfdpic]
[-mno-fdpic]
[-mnopic]
[--underscore
[--pic]
[--emulation=criself
[--march=v0_v10
[-O]
[-O|-n|-N]
[-mepiphany|-mepiphany16]
[-h-tick-hex]
[--32|--x32|--64]
[-march=CPU[+EXTENSION...]]
[-ACA|-ACA_A|-ACB|-ACC|-AKA|-AKB|
[-b]
[-mconstant-gp|-mauto-pic]
[-milp32|-milp64|-mlp64|-mp64]
[-mle|mbe]
[-mtune=itanium1|-mtune=itanium2]
[-munwind-check=warning|-munwind-check=error]
[-mhint.b=ok|-mhint.b=warning|-mhint.b=error]
[-x|-xexplicit]
[-mip2022|-mip2022ext]
[-m32c|-m16c]
[--m32rx|--[no-]warn-explicit-parallel-conflicts|
--W[n]p]
[-l]
[-m68hc11|-m68hc12|-m68hcs12|-mm9s12x|-mm9s12xg]
[-mshort|-mlong]
[-mshort-double|-mlong-double]
[--force-long-branches]
[--strict-direct-mode]
[--print-opcodes]
[-jsri2bsr]
[-mcpu=[210|340]]
[-mcpu=cpu]
[-nocpp]
[-g[debug level]]
[-non_shared]
[-mabi=ABI]
[-mfp64]
[-modd-spreg]
[-march=CPU]
[-mips3]
[-mips32r3]
[-mips64r3]
[-construct-floats]
[-mnan=encoding]
[-trap]
[-mips16]
[-mmicromips]
[-msmartmips]
[-mips3d]
[-mdmx]
[-mdsp]
[-mdspr2]
[-mmsa]
[-mxpa]
[-mmt]
[-mmcu]
[-minsn32]
[-mfix7000]
[-mfix-rm7000]
[-mfix-vr4120]
[-mfix-vr4130]
[-mdebug]
[-mpdr]
[--fixed-special-register-names]
[--gnu-syntax]
[--no-expand]
[--linker-allocated-gregs]
[-relax-all]
[-EB]
[-mpic|-mno-pic]
[-mextension|-mno-extension]
[-mcpu]
[-mb|-me]
[-a32|-a64]
[-mpwrx|-mpwr2|-mpwr|-m601|-mppc|-mppc32|-m603|-m604|-m403|-m405|
[-many]
[-mregnames|-mno-regnames]
[-mrelocatable|-mrelocatable-lib|-K
[-mlittle|-mlittle-endian|-le|-mbig|-mbig-endian|-be]
[-msolaris|-mno-solaris]
[-nops=count]
[-mg10]
[-m32bit-doubles|-m64bit-doubles]
[-mlittle-endian|-mbig-endian]
[-m32bit-doubles|-m64bit-doubles]
[-muse-conventional-section-names]
[-msmall-data-limit]
[-mpid]
[-mrelax]
[-mint-register=number]
[-mgcc-abi|-mrx-abi]
[-m31|-m64]
[-mregnames|-mno-regnames]
[-mwarn-areg-zero]
[-EB][-EL][-FIXDD][-NWARN]
[-SCORE5][-SCORE5U][-SCORE7][-SCORE3]
[-march=score7][-march=score3]
[-USE_R1][-KPIC][-O0][-G
[-Av6|-Av7|-Av8|-Asparclet|-Asparclite
[-xarch=v8plus|-xarch=v8plusa]
[-32|-64]
[-march=arch]
[-mdsbt|-mno-dsbt]
[-mpic|-mno-pic]
[-m32|-m64][-EB][-EL]
[-mtune=arch]
DESCRIPTION
GNU as 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
pseudo-ops) and assembler syntax.
gcc -c -g -O -Wa,-alh,-L file.c
OPTIONS