AS
Section: User Commands (1)
Updated: July 19, 1993
Index
Return to Main Contents
NAME
as - NeXT GNU-based assemblers producing Mach object files
SYNOPSIS
as
[
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).
- --
-
Use
stdin
for the assembly source input.
- -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 defined labels beginning with an 'L', which are normally discarded to
save space in the resultant symbol table. The compiler generates such
temporary labels.
Assembler options for the mc680x0 processors
- -l
-
For offsets off of an address register that refers to an undefined symbol (as in "a6@(foo)", where "foo" is not defined in the assembly file) make the offset and
the relocation entry width 32 bits rather than 16 bits.
- -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
cc(1), ld(1), nm(1), otool(1), arch(3), Mach-O(5)
Index
- NAME
-
- SYNOPSIS
-
- DESCRIPTION
-
- OPTIONS
-
- Assembler options for the mc680x0 processors
-
- FILES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 17:19:11 GMT, March 25, 2025