Manual Pages for UNIX Darwin command on man as
MyWebUniversity

Manual Pages for UNIX Darwin command on man as

AS(1) AS(1)

NAME

as - Mac OS X Mach-O GNU-based assemblers

SYNOPSIS

aass [ option ... ] [ file ... ]

DESCRIPTION

The as command translates assembly code in the named files to object

code. If no files are specified, as reads from ssttddiinn. All undefined

symbols in the assembly are treated as global. The output of the

assembly is left in the file aa..oouutt by default.

The program //uussrr//bbiinn//aass is actually a driver that executes assemblers

for specific target architectures. If no target architecture is speci-

fied, it defaults to the architecture of the host it is running on. OOPPTTIIOONNSS

-oo name

Name the output file name instead of aa..oouutt.

-aarrcchh archtype

Specifies the target architecture, archtype, of the assembler

to be executed. The target assemblers for each architecture are

in //uussrr//lliibbeexxeecc//ggcccc//ddaarrwwiinn//archtype//aass or

//uussrr//llooccaall//lliibbeexxeecc//ggcccc//ddaarrwwiinn//archtype//aass. 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.,

//uussrr//lliibbeexxeecc//ggcccc//ddaarrwwiinn//ppppcc//aass for -aarrcchh ppppcc660044ee). See arch(3)

for the currently known archtypes.

-aarrcchhmmuullttiippllee

Precede any displayed messages with a line stating the program

name (aass) and the architecture (from the -aarrcchh archtype flag),

to distinguish which architecture the error messages refer to.

When the cc(1) driver program is run with multiple -aarrcchh flags,

it invokes as with the -aarrcchhmmuullttiippllee option.

-ffoorrcceeccppuussuubbttyyppeeAALLLL

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 instructions is not allowed, an error is gener-

ated. With the optional -ffoorrcceeccppuussuubbttyyppeeAALLLL flag, all

instructions are allowed and the object file's CPU subtype will be the ALL subtype. If the target architecture specified is a

machine-specific implementation (e.g., -aarrcchh ppppcc660033, -aarrcchh

ii448866), 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 implementa-

tion (even if no implementation-specific instructions are used).

The -ffoorrcceeccppuussuubbttyyppeeAALLLL flag is the default for all x86 and

x8664 architectures.

-ddyynnaammiicc

Enables dynamic linking features. This is the default.

-ssttaattiicc

Causes the assembler to treat as an error any features for

dynamic linking. Also causes the .text directive to not include the pureinstructions section attribute.

-- Use ssttddiinn for the assembly source input.

-nn Instructs the assembler not to assume that the assembly file

starts with a ..tteexxtt 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.

-ff Fast; no need for the assembler preprocessor (``app''). The

assembler preprocessor can also be turned off by starting the

assembly file with "#NOAPP\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

ccpppp.. This is typically needed when assembler files are assem-

bled 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 char-

acters into a decimal constants, and turns #

into .line ;.file pairs. When the

assembler preprocessor has been turned off by a "#NOAPP\n" at

the start of a file, it can be turned back on and off again with

pairs of "#APP\n" and "#NOAPP\n" at the beginnings of lines.

This is used by the compiler to wrap assembly statements pro-

duced from aassmm(()) statements.

-gg 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.

-vv Display the version of the assembler (both the Mac OS X version

and the GNU version it is based on).

-VV Print the path and the command line of the assembler the assem-

bler driver is using.

-IIdir Add the directory dir to the list of directories to search for

files included with the .include directive. The default place to search is the current directory.

-WW Suppress warnings.

-LL 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. AAsssseemmbblleerr ooppttiioonnss ffoorr tthhee PPoowweerrPPCC pprroocceessssoorrss

-ssttaattiiccbbrraanncchhpprreeddiiccttiioonnYYbbiitt

Treat a single trailing '+' or '-' after a conditional PowerPC

branch instruction as a static branch prediction that sets the

Y-bit in the opcode. Pairs of trailing "++" or "-" always set

the AT-bits. This is the default for Mac OS X.

-ssttaattiiccbbrraanncchhpprreeddiiccttiioonnAATTbbiittss

Treat a single trailing '+' or '-' after a conditional PowerPC

branch instruction as a static branch prediction that sets the

AT-bits in the opcode. Pairs of trailing "++" or "-" always set

the AT-bits but with this option a warning is issued if this

syntax is used. With this flag the assembler behaves like the

IBM tools.

-nnooppppcc660011

Treat any PowerPC 601 instructions as an error.

FILES a.out output file

SEE ALSO

The Mac OS X Assembler Reference in the Xcode documentation viewer:

Perform a title search for "assembler" in Apple > Developer Tools Ref-

erence Library.

The assembler source in the cctools module of the Darwin sources.

cc(1), ld(1), nm(1), otool(1), arch(3), Mach-O(5)

Apple, Inc. April 24, 2007 AS(1)




Contact us      |      About us      |      Term of use      |       Copyright © 2000-2019 MyWebUniversity.com ™