as man page on MacOSX

Man page or keyword search:  
man Server   23457 pages
apropos Keyword Search (all sections)
Output format
MacOSX logo
[printable version]

AS(1)									 AS(1)

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

       as [ option ...	] [ file ...  ]

       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 speci‐
       fied, it defaults to the architecture of the host it is running on.

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

	      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.

	      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  -force_cpusubtype_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 implementa‐
	      tion (even if no implementation-specific instructions are used).
	      The  -force_cpusubtype_ALL  flag	is the default for all x86 and
	      x86_64 architectures.

	      Enables dynamic linking features.	 This is the default.

	      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" 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	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 # <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 pro‐
	      duced 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	assem‐
	      bler 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.

       -q     Use  the clang(1) intergrated assembler instead of the GNU based
	      system assembler.	 This is available for the x86 and arm	archi‐
	      tectures.	 -Q Used the GNU based system assembler.

Assembler options for the PowerPC processors
	      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.

	      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.

	      Treat any PowerPC 601 instructions as an error.

       a.out	 output file

       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.			March 30, 2012				 AS(1)

List of man pages available for MacOSX

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
Vote for polarhome
Free Shell Accounts :: the biggest list on the net