AS(1)AS(1)NAMEas - NeXT Mach-O GNU-based assemblers
SYNOPSISas [ option ... ] [ file ... ]
DESCRIPTION
The as command translates assembly code in the named files to object
code. If no files are specified, as reads from stdin. All undefined
symbols in the assembly are treated as global. The output of the
assembly is left in the file a.out by default.
The program /bin/as is actually a driver that executes assemblers for
specific target architectures. If no target architecture is specified,
it defaults to the architecture of the host it is running on.
OPTIONS-o name
Name the output file name instead of a.out.
-arch arch_type
Specifies the target architecture, arch_type, of the assembler
to be executed. The target assemblers for each architecture are
in /lib/arch_type/as or /usr/local/lib/arch_type/as. There is
only one assembler for an architecture family. If the specified
target architecture is a machine-specific implementation, the
assembler for that architecture family is executed (e.g.,
/lib/m68k/as for -arch m68040). See arch(3) for the currently
known arch_types.
-arch_multiple
Precede any displayed messages with a line stating the program
name (as) and the architecture (from the -arch arch_type flag),
to distinguish which architecture the error messages refer to.
When the cc(1) driver program is run with multiple -arch flags,
it invokes as with the -arch_multiple option.
-force_cpusubtype_ALL
By default, the assembler will produce the CPU subtype ALL for
the object file it is assembling if it finds no implementation-
specific instructions. Also by default, the assembler will
allow implementation-specific instructions and will combine the
CPU subtype for those specific implementations. The combining
of specific implementations is architecture-dependent; if some
combination of architectures is not allowed, an error is
generated. With the optional -force_cpusubtype_ALL flag, all
instructions are allowed and the object file's CPU subtype will
be ALL. If the target architecture specified is a machine-
specific implementation (e.g., -arch m68040, -arch i486), the
assembler will flag as errors instructions that are not
supported on that architecture, and it will produce an object
file with the CPU subtype for that specific implementation (even
if no implementation-specific instructions are used).
-dynamic
Enables dynamic linking, a feature introduced in the NEXTSTEP
4.0 release. This is the default.
-static
Causes the assembler to treat as an error any features for
dynamic linking that are incompatible for deployment on NEXTSTEP
3.3 and earlier.
-- Use stdin for the assembly source input.
-n Instructs the assembler not to assume that the assembly file
starts with a .text directive. Use this option when an output
file is not to contain a (__TEXT,__text) section or this section
is not to be first one in the output file.
-f Fast; no need for the assembler preprocessor (``app''). The
assembler preprocessor can also be turned off by starting the
assembly file with "#NO_APP\n". This is intended for use by
compilers which produce assembly code in a strict "clean" format
that specifies exactly where whitespace can go. The assembler
preprocessor needs to be run on hand-written assembly files
and/or files that have been preprocessed by the C preprocessor
cpp. This is typically needed when assembler files are
assembled through the use of the cc(1) command, which
automatically runs the C preprocessor on assembly source files.
The assembler preprocessor strips out excess spaces, turns
single-quoted characters into a decimal constants, and turns #
<number> <filename> <level> into .line <number>;.file <filename>
pairs. When the assembler preprocessor has been turned off by a
"#NO_APP\n" at the start of a file, it can be turned back on and
off again with pairs of "#APP\n" and "#NO_APP\n" at the
beginnings of lines. This is used by the compiler to wrap
assembly statements produced from asm() statements.
-k Produces a warning when the statement ``.word
symbol1-symbol2+offset'' does not fit in a 16-bit word (only
applicable on the 68000 processor, where .word is 16 bits and
addresses are 16 bits). Not applicable on NeXT machines.
-g Produce debugging information for the symbolic debugger gdb(1)
so that the assembly source can be debugged symbolically. The
debugger depends on correct use of the C preprocessor's #include
directive or the assembler's .include directive: Any include
file that produces instructions in the (__TEXT,__text) section
must be included while a .text directive is in effect. In other
words, there must be a .text directive before the include, and
the .text directive must still be in effect at the end of the
include file. Otherwise, the debugger will get confused when in
that assembly file.
-v Display the version of the assembler (both the NeXT version and
the GNU version that it is based on).
-Idir Add the directory dir to the list of directories to search for
files included with the .include directive. The default places
to search are first the current directory, then
/NextDeveloper/Headers, and then /LocalDeveloper/Headers.
-W Suppress warnings.
-L Save non-global defined labels beginning with an 'L'; these
labels are normally discarded to save space in the resultant
symbol table. The compiler generates such temporary labels.
Assembler options for the mc680x0 processors-mc68000 and -mc68010
Generate branches that the mc68000 and mc68010 can use (that
don't use 32-bit pc-relative jumps and branches, since they are
not implemented on these two processors). Not applicable on
NeXT machines.
-mc68020
Generate branches that use 32-bit pc-relative displacements.
This is the default.
FILES
a.out output file
SEE ALSO
The assembler manual on line in
/NextLibrary/Documentation/NextDev/Reference/Assembler
cc(1), ld(1), nm(1), otool(1), arch(3), Mach-O(5)NeXT Computer, Inc. April 2, 1995 AS(1)