Unix/Linux Go Back    


OpenDarwin 7.2.1 - man page for as (opendarwin section 1)

Linux & Unix Commands - Search Man Pages
Man Page or Keyword Search:   man
Select Man Page Set:       apropos Keyword Search (sections above)


AS(1)											    AS(1)

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

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 /usr/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 /usr/libexec/gcc/darwin/arch_type/as
	      or  /usr/local/libexec/gcc/darwin/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.,
	      /usr/libexec/gcc/darwin/ppc/as for -arch ppc604e).  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 spe-
	      cific implementations is architecture-dependent; if some	combination  of  instruc-
	      tions  is  not  allowed,	an  error is generated.  With the optional -force_cpusub-
	      type_ALL 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., -arch ppc603, -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 features.  This is the default.

       -static
	      Causes  the  assembler to treat as an error any features for dynamic linking.  Also
	      causes the .text directive to not include the pure_instructions section attribute.

       --     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"  for-
	      mat  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  prepro-
	      cessed  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.

       -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 Mac OS X version and the GNU version
	      it is based on).

       -V     Print the path and the command line of the assembler the assembler driver is using.

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

       -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 PowerPC processors
       -static_branch_prediction_Y_bit
	      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.

       -static_branch_prediction_AT_bits
	      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 trail-
	      ing "++" 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.

       -no_ppc601
	      Treat any PowerPC 601 instructions as an error.

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  proces-
	      sors).  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 /Developer/Documentation/DeveloperTools/Assembler
       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 Computer, Inc.			   May 21, 2003 				    AS(1)
Unix & Linux Commands & Man Pages : ©2000 - 2018 Unix and Linux Forums


All times are GMT -4. The time now is 11:17 PM.