instead of in the original English.
@end titlepage
@page
-@node Top, Overview, (dir), (dir)
@ifinfo
+@node Top
+@top Using as
+
This file is a user guide to the GNU assembler @code{as}.
-@end ifinfo
@menu
* Overview:: Overview
* Invoking:: Command-Line Options
* Copying:: GNU GENERAL PUBLIC LICENSE
* Index:: Index
@end menu
+@end ifinfo
-@node Overview, Invoking, Top, Top
+@node Overview
@chapter Overview
@iftex
This manual is a user guide to the GNU assembler @code{as}.
* Errors:: Error and Warning Messages
@end menu
-@node Manual, GNU Assembler, Overview, Overview
+@node Manual
@section Structure of this Manual
@cindex manual, structure and purpose
@c this draft makes an effort to avoid them (except in names of
@c directives).
-@node GNU Assembler, Object Formats, Manual, Overview
+@node GNU Assembler
@section as, the GNU Assembler
GNU @code{as} is really a family of assemblers.
program in one pass of the source file. This has a subtle impact on the
@kbd{.org} directive (@pxref{Org,,@code{.org}}).
-@node Object Formats, Command Line, GNU Assembler, Overview
+@node Object Formats
@section Object File Formats
@cindex object file format
are typically different in different file formats. @xref{Symbol
Attributes,,Symbol Attributes}.
-@node Command Line, Input Files, Object Formats, Overview
+@node Command Line
@section Command Line
@cindex command line conventions
as -omy-object-file.o mumble.s
@end smallexample
-@node Input Files, Object, Command Line, Overview
+@node Input Files
@section Input Files
@cindex input
source is itself synthesized from other files.
@xref{App-File,,@code{.app-file}}.
-@node Object, Errors, Input Files, Overview
+@node Object
@section Output (Object) File
@cindex object file
@c link above to some info file(s) like the description of a.out.
@c don't forget to describe GNU info as well as Unix lossage.
-@node Errors, , Object, Overview
+@node Errors
@section Error and Warning Messages
@cindex error messsages
messages. The actual message text may be rather less explanatory
because many of them aren't supposed to happen.
-@node Invoking, Syntax, Overview, Top
+@node Invoking
@chapter Command-Line Options
@cindex options, all versions of @code{as}
@code{as} assembles your file. Errors, which stop the assembly, are
still reported.
-@node Syntax, Sections, Invoking, Top
+@node Syntax
@chapter Syntax
@cindex machine-independent syntax
* Constants:: Constants
@end menu
-@node Pre-processing, Whitespace, Syntax, Syntax
+@node Pre-processing
@section Pre-Processing
@cindex preprocessing
mainly intend to support @code{asm} statements in compilers whose output
normally does not need to be pre-processed.
-@node Whitespace, Comments, Pre-processing, Syntax
+@node Whitespace
@section Whitespace
@cindex whitespace
(@pxref{Characters,,Character Constants}), any whitespace means the same
as exactly one space.
-@node Comments, Symbol Intro, Whitespace, Syntax
+@node Comments
@section Comments
@cindex comments
This feature is deprecated, and may disappear from future versions
of @code{as}.
-@node Symbol Intro, Statements, Comments, Syntax
+@node Symbol Intro
@section Symbols
@cindex characters used in symbols
not a possible symbol delimiter). @xref{Symbols}.
@cindex length of symbols
-@node Statements, Constants, Symbol Intro, Syntax
+@node Statements
@section Statements
@cindex statements, structure of
instruction operand_1, operand_2, @dots{}
@end smallexample
-@node Constants, , Statements, Syntax
+@node Constants
@section Constants
@cindex constants
* Numbers:: Number Constants
@end menu
-@node Characters, Numbers, Constants, Constants
+@node Characters
@subsection Character Constants
@cindex character constants
* Chars:: Characters
@end menu
-@node Strings, Chars, Characters, Characters
+@node Strings
@subsubsection Strings
@cindex string constants
compilers recognize. If you are in doubt, don't use an escape
sequence.
-@node Chars, , Strings, Characters
+@node Chars
@subsubsection Characters
@cindex single character constant
that character. @code{as} assumes your character code is ASCII:
@kbd{'A} means 65, @kbd{'B} means 66, and so on. @refill
-@node Numbers, , Characters, Constants
+@node Numbers
@subsection Number Constants
@cindex constants, number
* Flonums:: Flonums
@end menu
-@node Integers, Bignums, Numbers, Numbers
+@node Integers
@subsubsection Integers
@cindex integers
@cindex constants, integer
the prefix operator @samp{-} discussed under expressions
(@pxref{Prefix Ops,,Prefix Operators}).
-@node Bignums, Flonums, Integers, Numbers
+@node Bignums
@subsubsection Bignums
@cindex bignums
represent in binary. The distinction is made because in some places
integers are permitted while bignums are not.
-@node Flonums, , Bignums, Numbers
+@node Flonums
@subsubsection Flonums
@cindex flonums
@cindex floating point numbers
@code{as}.
-@node Sections, Symbols, Syntax, Top
+@node Sections
@chapter Sections and Relocation
@cindex sections
@cindex relocation
* bss:: bss Section
@end menu
-@node Secs Background, ld Sections, Sections, Sections
+@node Secs Background
@section Background
Roughly, a section is a range of addresses, with no gaps; all data
Some sections are manipulated by @code{ld}; others are invented for
use of @code{as} and have no meaning except during assembly.
-@node ld Sections, as Sections, Secs Background, Sections
+@node ld Sections
@section ld Sections
@code{ld} deals with just four kinds of sections, summarized below.
@end tex
@c END TEXI2ROFF-KILL
-@node as Sections, Sub-Sections, ld Sections, Sections
+@node as Sections
@section as Internal Sections
@cindex internal @code{as} sections
@c FIXME item register
@end table
-@node Sub-Sections, bss, as Sections, Sections
+@node Sub-Sections
@section Sub-Sections
@cindex numbered subsections
section that statements are being assembled into is said to be the
@dfn{active} location counter.
-@node bss, , Sub-Sections, Sections
+@node bss
@section bss Section
@cindex bss section
are no bss subsections. @xref{Comm,,@code{.comm}},
@pxref{Lcomm,,@code{.lcomm}}.
-@node Symbols, Expressions, Sections, Top
+@node Symbols
@chapter Symbols
@cindex symbols
* Symbol Attributes:: Symbol Attributes
@end menu
-@node Labels, Setting Symbols, Symbols, Symbols
+@node Labels
@section Labels
@cindex labels
different locations: the first definition overrides any other
definitions.
-@node Setting Symbols, Symbol Names, Labels, Symbols
+@node Setting Symbols
@section Giving Symbols Other Values
@cindex assigning values to symbols
(@pxref{Expressions}). This is equivalent to using the @code{.set}
directive. @xref{Set,,@code{.set}}.
-@node Symbol Names, Dot, Setting Symbols, Symbols
+@node Symbol Names
@section Symbol Names
@cindex symbol names
For instance, the first @code{1:} is named @code{L1@ctrl{A}1}, the 44th
@code{3:} is named @code{L3@ctrl{A}44}.
-@node Dot, Symbol Attributes, Symbol Names, Symbols
+@node Dot
@section The Special Dot Symbol
@cindex dot (symbol)
directive. Thus, the expression @samp{.=.+4} is the same as saying
@samp{.block 4}.
-@node Symbol Attributes, , Dot, Symbols
+@node Symbol Attributes
@section Symbol Attributes
@cindex symbol attributes
* COFF Symbols:: Symbol Attributes for COFF
@end menu
-@node Symbol Value, Symbol Type, Symbol Attributes, Symbol Attributes
+@node Symbol Value
@subsection Value
@cindex value of a symbol
bytes (addresses). The symbol refers to the first address of the
allocated storage.
-@node Symbol Type, a.out Symbols, Symbol Value, Symbol Attributes
+@node Symbol Type
@subsection Type
@cindex type of a symbol
(optionally), other information for linkers and debuggers. The exact
format depends on the object-code output format in use.
-@node a.out Symbols, COFF Symbols, Symbol Type, Symbol Attributes
+@node a.out Symbols
@subsection Symbol Attributes: @code{a.out}
@cindex @code{a.out} symbol attributes
* Symbol Other:: Other
@end menu
-@node Symbol Desc, Symbol Other, a.out Symbols, a.out Symbols
+@node Symbol Desc
@subsubsection Descriptor
@cindex descriptor, of @code{a.out} symbol
(@pxref{Desc,,@code{.desc}}). A descriptor value means nothing to
@code{as}.
-@node Symbol Other, , Symbol Desc, a.out Symbols
+@node Symbol Other
@subsubsection Other
@cindex other attribute, of @code{a.out} symbol
This is an arbitrary 8-bit value. It means nothing to @code{as}.
-@node COFF Symbols, , a.out Symbols, Symbol Attributes
+@node COFF Symbols
@subsection Symbol Attributes for COFF
@cindex COFF symbol attributes
@code{.size}, and @code{.tag} can generate auxiliary symbol table
information for COFF.
-@node Expressions, Pseudo Ops, Symbols, Top
+@node Expressions
@chapter Expressions
@cindex expressions
* Integer Exprs:: Integer Expressions
@end menu
-@node Empty Exprs, Integer Exprs, Expressions, Expressions
+@node Empty Exprs
@section Empty Expressions
@cindex empty expressions
expression and @code{as} will assume a value of (absolute) 0. This
is compatible with other assemblers.
-@node Integer Exprs, , Empty Exprs, Expressions
+@node Integer Exprs
@section Integer Expressions
@cindex integer expressions
* Infix Ops:: Infix Operators
@end menu
-@node Arguments, Operators, Integer Exprs, Integer Exprs
+@node Arguments
@subsection Arguments
@cindex expression arguments
expression, followed by a right parenthesis @samp{)}; or a prefix
operator followed by an argument.
-@node Operators, Prefix Ops, Arguments, Integer Exprs
+@node Operators
@subsection Operators
@cindex operators, in expressions
between their arguments. Operators may be preceded and/or followed by
whitespace.
-@node Prefix Ops, Infix Ops, Operators, Integer Exprs
+@node Prefix Ops
@subsection Prefix Operator
@cindex prefix operators
\global\advance\leftskip by -\itemindent
@end tex
-@node Infix Ops, , Prefix Ops, Integer Exprs
+@node Infix Ops
@subsection Infix Operators
@cindex infix operators
Similarly, you can't subtract quantities from two different sections.
-@node Pseudo Ops, Machine Dependent, Expressions, Top
+@node Pseudo Ops
@chapter Assembler Directives
@cindex directives, machine independent
* Ln:: @code{.ln @var{line-number}}
* List:: @code{.list}
* Long:: @code{.long @var{expressions}}
-* Lsym:: @code{.lsym @var{symbol}, @var{expression}}
* Nolist:: @code{.nolist}
* Octa:: @code{.octa @var{bignums}}
* Org:: @code{.org @var{new-lc} , @var{fill}}
* Deprecated:: Deprecated Directives
@end menu
-@node Abort, coff-ABORT, Pseudo Ops, Pseudo Ops
+@node Abort
@section @code{.abort}
@cindex @code{abort} directive
of the source quit, it could use this directive tells @code{as} to
quit also. One day @code{.abort} will not be supported.
-@node coff-ABORT, Align, Abort, Pseudo Ops
+@node coff-ABORT
@section @code{.ABORT}
@cindex @code{ABORT} directive
When producing @code{b.out} output, @code{as} accepts this directive,
but ignores it.
-@node Align, App-File, coff-ABORT, Pseudo Ops
+@node Align
@section @code{.align @var{abs-expr} , @var{abs-expr}}
@cindex padding the location counter
the padding bytes. It (and the comma) may be omitted. If it is
omitted, the padding bytes are zero.
-@node App-File, Ascii, Align, Pseudo Ops
+@node App-File
@section @code{.app-file @var{string}}
@cindex logical file name
future: it is only recognized to be compatible with old @code{as}
programs.@refill
-@node Ascii, Asciz, App-File, Pseudo Ops
+@node Ascii
@section @code{.ascii "@var{string}"}@dots{}
@cindex @code{ascii} directive
separated by commas. It assembles each string (with no automatic
trailing zero byte) into consecutive addresses.
-@node Asciz, Byte, Ascii, Pseudo Ops
+@node Asciz
@section @code{.asciz "@var{string}"}@dots{}
@cindex @code{asciz} directive
@code{.asciz} is just like @code{.ascii}, but each string is followed by
a zero byte. The ``z'' in @samp{.asciz} stands for ``zero''.
-@node Byte, Comm, Asciz, Pseudo Ops
+@node Byte
@section @code{.byte @var{expressions}}
@cindex @code{byte} directive
@code{.byte} expects zero or more expressions, separated by commas.
Each expression is assembled into the next byte.
-@node Comm, Data, Byte, Pseudo Ops
+@node Comm
@section @code{.comm @var{symbol} , @var{length} }
@cindex @code{comm} directive
long as the longest @code{.comm} request in any of the partial programs
linked. @var{length} is an absolute expression.
-@node Data, Def, Comm, Pseudo Ops
+@node Data
@section @code{.data @var{subsection}}
@cindex @code{data} directive
absolute expression). If @var{subsection} is omitted, it defaults
to zero.
-@node Def, Desc, Data, Pseudo Ops
+@node Def
@section @code{.def @var{name}}
@cindex @code{def} directive
format output; when producing @code{b.out}, @samp{.def} is recognized,
but ignored.
-@node Desc, Dim, Def, Pseudo Ops
+@node Desc
@section @code{.desc @var{symbol}, @var{abs-expression}}
@cindex @code{desc} directive
object format. For the sake of compatibility, @code{as} will accept
it, but produce no output, when configured for COFF.
-@node Dim, Double, Desc, Pseudo Ops
+@node Dim
@section @code{.dim}
@cindex @code{dim} directive
@code{as} is generating @code{b.out}, it accepts this directive but
ignores it.
-@node Double, Eject, Dim, Pseudo Ops
+@node Double
@section @code{.double @var{flonums}}
@cindex @code{double} directive
The exact kind of floating point numbers emitted depends on how
@code{as} is configured. @xref{Machine Dependent}.
-@node Eject, Else, Double, Pseudo Ops
+@node Eject
@section @code{.eject}
@cindex @code{eject} directive
@cindex listing control: new page
Force a page break at this point, when generating assembly listings.
-@node Else, Endef, Eject, Pseudo Ops
+@node Else
@section @code{.else}
@cindex @code{else} directive
was false.
-@node Endef, Endif, Else, Pseudo Ops
+@node Endef
@section @code{.endef}
@cindex @code{endef} directive
@code{as} is configured to generate @code{b.out}, it accepts this
directive but ignores it.
-@node Endif, Equ, Endef, Pseudo Ops
+@node Endif
@section @code{.endif}
@cindex @code{endif} directive
it marks the end of a block of code that is only assembled
conditionally. @xref{If,,@code{.if}}.
-@node Equ, Extern, Endif, Pseudo Ops
+@node Equ
@section @code{.equ @var{symbol}, @var{expression}}
@cindex @code{equ} directive
This directive sets the value of @var{symbol} to @var{expression}.
It is synonymous with @samp{.set}; @pxref{Set,,@code{.set}}.
-@node Extern, File, Equ, Pseudo Ops
+@node Extern
@section @code{.extern}
@cindex @code{extern} directive
with other assemblers---but it is ignored. @code{as} treats
all undefined symbols as external.
-@node File, Fill, Extern, Pseudo Ops
+@node File
@section @code{.file @var{string}}
@cindex @code{file} directive
In some configurations of @code{as}, @code{.file} has already been
removed to avoid conflicts with other assemblers. @xref{Machine Dependent}.
-@node Fill, Float, File, Pseudo Ops
+@node Fill
@section @code{.fill @var{repeat} , @var{size} , @var{value}}
@cindex @code{fill} directive
assumed zero. If the first comma and following tokens are absent,
@var{size} is assumed to be 1.
-@node Float, Global, Fill, Pseudo Ops
+@node Float
@section @code{.float @var{flonums}}
@cindex floating point numbers (single)
@code{as} is configured.
@xref{Machine Dependent}.
-@node Global, hword, Float, Pseudo Ops
+@node Global
@section @code{.global @var{symbol}}, @code{.globl @var{symbol}}
@cindex @code{global} directive
Both spellings (@samp{.globl} and @samp{.global}) are accepted, for
compatibility with other assemblers.
-@node hword, Ident, Global, Pseudo Ops
+@node hword
@section @code{.hword @var{expressions}}
@cindex @code{hword} directive
This directive is a synonym for @samp{.short}; depending on the target
architecture, it may also be a synonym for @samp{.word}.
-@node Ident, If, hword, Pseudo Ops
+@node Ident
@section @code{.ident}
@cindex @code{ident} directive
compatibility with such assemblers, but does not actually emit anything
for it.
-@node If, Include, Ident, Pseudo Ops
+@node If
@section @code{.if @var{absolute expression}}
@cindex conditional assembly
@end table
-@node Include, Int, If, Pseudo Ops
+@node Include
@section @code{.include "@var{file}"}
@cindex @code{include} directive
(@pxref{Invoking,,Command-Line Options}). Quotation marks are required
around @var{file}.
-@node Int, Lcomm, Include, Pseudo Ops
+@node Int
@section @code{.int @var{expressions}}
@cindex @code{int} directive
time, be the value of that expression. The byte order of the
expression depends on what kind of computer will run the program.
-@node Lcomm, Lflags, Int, Pseudo Ops
+@node Lcomm
@section @code{.lcomm @var{symbol} , @var{length}}
@cindex @code{lcomm} directive
is not declared global (@pxref{Global,,@code{.global}}), so is normally
not visible to @code{ld}.
-@node Lflags, Line, Lcomm, Pseudo Ops
+@node Lflags
@section @code{.lflags}
@cindex @code{lflags} directive (ignored)
@code{as} accepts this directive, for compatibility with other
assemblers, but ignores it.
-@node Line, Ln, Lflags, Pseudo Ops
+@node Line
@section @code{.line @var{line-number}}
@cindex @code{line} directive
only available with the name @code{.ln}, rather than as either
@code{.line} or @code{.ln}.
-Even though this is a directive associated with the @code{a.out} or
-@code{b.out} object-code formats, @code{as} will still recognize it
-when producing COFF output, and will treat @samp{.line} as though it
-were the COFF @samp{.ln} @emph{if} it is found outside a
-@code{.def}/@code{.endef} pair.
-
-Inside a @code{.def}, @samp{.line} is, instead, one of the directives
-used by compilers to generate auxiliary symbol information for
-debugging.
-
-@node Ln, List, Line, Pseudo Ops
+@node Ln
@section @code{.ln @var{line-number}}
@cindex @code{ln} directive
@samp{.ln} is a synonym for @samp{.line}.
-@node List, Long, Ln, Pseudo Ops
+@node List
@section @code{.list}
@cindex @code{list} directive
@samp{-a} command line option; @pxref{Invoking,,Command-Line Options}),
the initial value of the listing counter is one.
-@node Long, Lsym, List, Pseudo Ops
+@node Long
@section @code{.long @var{expressions}}
@cindex @code{long} directive
@code{.long} is the same as @samp{.int}, @pxref{Int,,@code{.int}}.
-@node Lsym, Nolist, Long, Pseudo Ops
+@ignore
+@c no one seems to know what this is for or whether this description is
+@c what it really ought to do
+@node Lsym
@section @code{.lsym @var{symbol}, @var{expression}}
@cindex @code{lsym} directive
@end smallexample
@noindent
The new symbol is not flagged as external.
+@end ignore
-@node Nolist, Octa, Lsym, Pseudo Ops
+@node Nolist
@section @code{.nolist}
@cindex @code{nolist} directive
counter, and @code{.nolist} decrements it. Assembly listings are
generated whenever the counter is greater than zero.
-@node Octa, Org, Nolist, Pseudo Ops
+@node Octa
@section @code{.octa @var{bignums}}
@c FIXME: double size emitted for "octa" on i960, others? Or warn?
The term ``octa'' comes from contexts in which a ``word'' is two bytes;
hence @emph{octa}-word for 16 bytes.
-@node Org, Psize, Octa, Pseudo Ops
+@node Org
@section @code{.org @var{new-lc} , @var{fill}}
@cindex @code{org} directive
absolute expression. If the comma and @var{fill} are omitted,
@var{fill} defaults to zero.
-@node Psize, Quad, Org, Pseudo Ops
+@node Psize
@section @code{.psize @var{lines} , @var{columns}}
@cindex @code{psize} directive
If you specify @var{lines} as @code{0}, no formfeeds are generated save
those explicitly specified with @code{.eject}.
-@node Quad, Sbttl, Psize, Pseudo Ops
+@node Quad
@section @code{.quad @var{bignums}}
@cindex @code{quad} directive
The term ``quad'' comes from contexts in which a ``word'' is two bytes;
hence @emph{quad}-word for 8 bytes.
-@node Sbttl, Scl, Quad, Pseudo Ops
+@node Sbttl
@section @code{.sbttl "@var{subheading}"}
@cindex @code{sbttl} directive
This directive affects subsequent pages, as well as the current page if
it appears within ten lines of the top of a page.
-@node Scl, Section, Sbttl, Pseudo Ops
+@node Scl
@section @code{.scl @var{class}}
@cindex @code{scl} directive
configured to generate @code{b.out} output format, @code{as} will
accept this directive but ignore it.
-@node Section, Set, Scl, Pseudo Ops
+@node Section
@section @code{.section @var{name}, @var{subsection}}
@cindex @code{section} directive
@samp{.section .text} is equivalent to the @code{.text} directive;
@samp{.section .data} is equivalent to the @code{.data} directive.
-@node Set, Short, Section, Pseudo Ops
+@node Set
@section @code{.set @var{symbol}, @var{expression}}
@cindex @code{set} directive
If you @code{.set} a global symbol, the value stored in the object
file is the last value stored into it.
-@node Short, Single, Set, Pseudo Ops
+@node Short
@section @code{.short @var{expressions}}
@cindex @code{short} directive
@code{.short} is the same as @samp{.word}. @xref{Word,,@code{.word}}.
-@node Single, Size, Short, Pseudo Ops
+
+@node Single
@section @code{.single @var{flonums}}
@cindex @code{single} directive
The exact kind of floating point numbers emitted depends on how
@code{as} is configured. @xref{Machine Dependent}.
-@node Size, Space, Single, Pseudo Ops
+@node Size
@section @code{.size}
@cindex @code{size} directive
@code{as} is generating @code{b.out}, it accepts this directive but
ignores it.
-@node Space, Stab, Size, Pseudo Ops
+@node Space
@section @code{.space @var{size} , @var{fill}}
@cindex @code{space} directive
@code{.space} has the effect of @code{.block} @xref{Machine Dependent}.
@end quotation
-@node Stab, Tag, Space, Pseudo Ops
+@node Stab
@section @code{.stabd, .stabn, .stabs}
@cindex symbolic debuggers, information for
All five fields are specified.
@end table
-@node Tag, Text, Stab, Pseudo Ops
+@node Tag
@section @code{.tag @var{structname}}
@cindex COFF structure debugging
@code{as} is generating @code{b.out}, it accepts this directive but
ignores it.
-@node Text, Title, Tag, Pseudo Ops
+@node Text
@section @code{.text @var{subsection}}
@cindex @code{text} directive
expression. If @var{subsection} is omitted, subsection number zero
is used.
-@node Title, Type, Text, Pseudo Ops
+@node Title
@section @code{.title "@var{heading}"}
@cindex @code{title} directive
This directive affects subsequent pages, as well as the current page if
it appears within ten lines of the top of a page.
-@node Type, Val, Title, Pseudo Ops
+@node Type
@section @code{.type @var{int}}
@cindex COFF symbol type
@code{as} is configured for @code{b.out} output, it accepts this
directive but ignores it.
-@node Val, Word, Type, Pseudo Ops
+@node Val
@section @code{.val @var{addr}}
@cindex @code{val} directive
@samp{.val} is used only for COFF output; when @code{as} is
configured for @code{b.out}, it accepts this directive but ignores it.
-@node Word, Deprecated, Val, Pseudo Ops
+@node Word
@section @code{.word @var{expressions}}
@cindex @code{word} directive
entries in the original jump table as necessary.
-@node Deprecated, , Word, Pseudo Ops
+@node Deprecated
@section Deprecated Directives
@cindex deprecated directives
@item .line
@end table
-@node Machine Dependent, Copying, Pseudo Ops, Top
+@node Machine Dependent
@chapter Machine Dependent Features
@cindex machine dependencies
* i386-Dependent:: 80386 Dependent Features
@end menu
-@node Vax-Dependent, AMD29K-Dependent, Machine Dependent, Machine Dependent
+@node Vax-Dependent
@section VAX Dependent Features
@cindex VAX support
* VAX-no:: Not Supported on VAX
@end menu
-@node Vax-Opts, VAX-float, Vax-Dependent, Vax-Dependent
+@node Vax-Opts
@subsection VAX Command-Line Options
@cindex command-line options ignored, VAX
symbol so that the object file will be compatible with Vax-11
"C".
-@node VAX-float, VAX-directives, Vax-Opts, Vax-Dependent
+@node VAX-float
@subsection VAX Floating Point
@cindex VAX floating point
The @code{.float} directive produces @code{f} format numbers.
The @code{.double} directive produces @code{d} format numbers.
-@node VAX-directives, VAX-opcodes, VAX-float, Vax-Dependent
+@node VAX-directives
@subsection Vax Machine Directives
@cindex machine directives, VAX
@end table
-@node VAX-opcodes, VAX-branch, VAX-directives, Vax-Dependent
+@node VAX-opcodes
@subsection VAX Opcodes
@cindex VAX opcode mnemonics
@code{.word} statements. This is compatible with all unix
assemblers we know of.
-@node VAX-branch, VAX-operands, VAX-opcodes, Vax-Dependent
+@node VAX-branch
@subsection VAX Branch Improvement
@cindex VAX branch improvement
@end table
@end table
-@node VAX-operands, VAX-no, VAX-branch, Vax-Dependent
+@node VAX-operands
@subsection VAX Operands
@cindex VAX operand notation
@c a syntax clash because () is used as an address mode
@c and to encapsulate sub-expressions.
-@node VAX-no, , VAX-operands, Vax-Dependent
+@node VAX-no
@subsection Not Supported on VAX
@cindex VAX bitfields not supported
Vax bit fields can not be assembled with @code{as}. Someone
can add the required code if they really need it.
-@node AMD29K-Dependent, H8/300-Dependent, Vax-Dependent, Machine Dependent
+@node AMD29K-Dependent
@section AMD 29K Dependent Features
@cindex AMD 29K support
* AMD29K Opcodes:: Opcodes
@end menu
-@node AMD29K Options, AMD29K Syntax, AMD29K-Dependent, AMD29K-Dependent
+@node AMD29K Options
@subsection Options
@cindex AMD 29K options (none)
@cindex options for AMD29K (none)
@code{as} has no additional command-line options for the AMD
29K family.
-@node AMD29K Syntax, AMD29K Floating Point, AMD29K Options, AMD29K-Dependent
+@node AMD29K Syntax
@subsection Syntax
@menu
* AMD29K-Chars:: Special Characters
* AMD29K-Regs:: Register Names
@end menu
-@node AMD29K-Chars, AMD29K-Regs, AMD29K Syntax, AMD29K Syntax
+@node AMD29K-Chars
@subsubsection Special Characters
@cindex line comment character, AMD 29K
The character @samp{?} is permitted in identifiers (but may not begin
an identifier).
-@node AMD29K-Regs, , AMD29K-Chars, AMD29K Syntax
+@node AMD29K-Regs
@subsubsection Register Names
@cindex AMD 29K register names
q cr exop
@end smallexample
-@node AMD29K Floating Point, AMD29K Directives, AMD29K Syntax, AMD29K-Dependent
+@node AMD29K Floating Point
@subsection Floating Point
@cindex floating point, AMD 29K (@sc{ieee})
@cindex AMD 29K floating point (@sc{ieee})
The AMD 29K family uses @sc{ieee} floating-point numbers.
-@node AMD29K Directives, AMD29K Opcodes, AMD29K Floating Point, AMD29K-Dependent
+@node AMD29K Directives
@subsection AMD 29K Machine Directives
@cindex machine directives, AMD 29K
This directive is ignored; it is accepted for compatibility with other
AMD 29K assemblers.
+@ignore
+@c since we're ignoring .lsym...
@item .reg @var{symbol}, @var{expression}
@cindex @code{reg} directive, AMD 29K
@code{.reg} has the same effect as @code{.lsym}; @pxref{Lsym,,@code{.lsym}}.
+@end ignore
@item .sect
@cindex @code{sect} directive, AMD 29K
@samp{.data 200}.
@end table
-@node AMD29K Opcodes, , AMD29K Directives, AMD29K-Dependent
+@node AMD29K Opcodes
@subsection Opcodes
@cindex AMD 29K opcodes
For information on the 29K machine instruction set, see @cite{Am29000
User's Manual}, Advanced Micro Devices, Inc.
-@node H8/300-Dependent, i960-Dependent, AMD29K-Dependent, Machine Dependent
+@node H8/300-Dependent
@section H8/300 Dependent Features
@cindex H8/300 support
* H8/300 Opcodes:: Opcodes
@end menu
-@node H8/300 Options, H8/300 Syntax, H8/300-Dependent, H8/300-Dependent
+@node H8/300 Options
@subsection Options
@cindex H8/300 options (none)
@code{as} has no additional command-line options for the Hitachi
H8/300 family.
-@node H8/300 Syntax, H8/300 Floating Point, H8/300 Options, H8/300-Dependent
+@node H8/300 Syntax
@subsection Syntax
@menu
* H8/300-Chars:: Special Characters
* H8/300-Addressing:: Addressing Modes
@end menu
-@node H8/300-Chars, H8/300-Regs, H8/300 Syntax, H8/300 Syntax
+@node H8/300-Chars
@subsubsection Special Characters
@cindex line comment character, H8/300
@samp{$} can be used instead of a newline to separate statements.
Therefore @emph{you may not use @samp{$} in symbol names} on the H8/300.
-@node H8/300-Regs, H8/300-Addressing, H8/300-Chars, H8/300 Syntax
+@node H8/300-Regs
@subsubsection Register Names
@cindex H8/300 registers
register). @code{r7} is used as the stack pointer, and can also be
called @code{sp}.
-@node H8/300-Addressing, , H8/300-Regs, H8/300 Syntax
+@node H8/300-Addressing
@subsubsection Addressing Modes
@cindex addressing modes, H8/300
wish; but @code{as} neither requires this nor uses it.
@end table
-@node H8/300 Floating Point, H8/300 Directives, H8/300 Syntax, H8/300-Dependent
+@node H8/300 Floating Point
@subsection Floating Point
@cindex floating point, H8/300 (@sc{ieee})
@cindex H8/300 floating point (@sc{ieee})
The H8/300 family uses @sc{ieee} floating-point numbers.
-@node H8/300 Directives, H8/300 Opcodes, H8/300 Floating Point, H8/300-Dependent
+@node H8/300 Directives
@subsection H8/300 Machine Directives
@cindex H8/300 machine directives (none)
However, on this platform the @samp{.int} and @samp{.word} directives
generate 16-bit numbers.
-@node H8/300 Opcodes, , H8/300 Directives, H8/300-Dependent
+@node H8/300 Opcodes
@subsection Opcodes
@cindex H8/300 opcode summary
If you use the size suffixes, @code{as} will issue a warning if
there's a mismatch between the suffix and the register size.
-@node i960-Dependent, M68K-Dependent, H8/300-Dependent, Machine Dependent
+@node i960-Dependent
@section Intel 80960 Dependent Features
@cindex i960 support
@c FIXME! Add Syntax sec with discussion of bitfields here, at least so
@c long as they're not turned on for other machines than 960.
-@node Options-i960, Floating Point-i960, i960-Dependent, i960-Dependent
+
+@node Options-i960
@subsection i960 Command-line Options
displacement size), regardless of whether you use @samp{-norelax}.
@end table
-@node Floating Point-i960, Directives-i960, Options-i960, i960-Dependent
+@node Floating Point-i960
@subsection Floating Point
@cindex floating point, i960 (@sc{ieee})
@code{as} generates @sc{ieee} floating-point numbers for the directives
@samp{.float}, @samp{.double}, @samp{.extended}, and @samp{.single}.
-@node Directives-i960, Opcodes for i960, Floating Point-i960, i960-Dependent
+@node Directives-i960
@subsection i960 Machine Directives
@cindex machine directives, i960
(inclusive).
@end table
-@node Opcodes for i960, , Directives-i960, i960-Dependent
+@node Opcodes for i960
@subsection i960 Opcodes
@cindex opcodes, i960
* Compare-and-branch-i960:: Compare-and-Branch
@end menu
-@node callj-i960, Compare-and-branch-i960, Opcodes for i960, Opcodes for i960
+@node callj-i960
@subsubsection @code{callj}
@cindex @code{callj}, i960 pseudo-opcode
@code{callj}; if not, it will simply emit the @code{callj}, leaving it
for the linker to resolve.
-@node Compare-and-branch-i960, , callj-i960, Opcodes for i960
+@node Compare-and-branch-i960
@subsubsection Compare-and-Branch
@cindex i960 compare/branch instructions
@end tex
@c END TEXI2ROFF-KILL
-@c FIXME! node conds are only sufficient for m68k alone, all, and vintage
-@node M68K-Dependent, Sparc-Dependent, i960-Dependent, Machine Dependent
+@node M68K-Dependent
@section M680x0 Dependent Features
@cindex M680x0 support
* M68K-opcodes:: Opcodes
@end menu
-@node M68K-Opts, M68K-Syntax, M68K-Dependent, M68K-Dependent
+@node M68K-Opts
@subsection M680x0 Options
@cindex options, M680x0
@samp{-m68020}, and @samp{-mc68020} to tell it what processor is the
target.
-@node M68K-Syntax, M68K-Float, M68K-Opts, M68K-Dependent
+@node M68K-Syntax
@subsection Syntax
@cindex M680x0 syntax
@end ignore
@end table
-@node M68K-Float, M68K-Directives, M68K-Syntax, M68K-Dependent
+@node M68K-Float
@subsection Floating Point
@cindex floating point, M680x0
directive to create extended precision numbers would not be
hard, but it has not yet seemed necessary.
-@node M68K-Directives, M68K-opcodes, M68K-Float, M68K-Dependent
+@node M68K-Directives
@subsection 680x0 Machine Directives
@cindex M680x0 directives
This directive is identical to a @code{.space} directive.
@end table
-@node M68K-opcodes, , M68K-Directives, M68K-Dependent
+@node M68K-opcodes
@subsection Opcodes
@cindex M680x0 opcodes
* M68K-Chars:: Special Characters
@end menu
-@node M68K-Branch, M68K-Chars, M68K-opcodes, M68K-opcodes
+@node M68K-Branch
@subsubsection Branch Improvement
@cindex pseudo-opcodes, M680x0
@end table
-@node M68K-Chars, , M68K-Branch, M68K-opcodes
+@node M68K-Chars
@subsubsection Special Characters
@cindex special characters, M680x0
beginning of a line, it is treated as a comment unless it looks like
@samp{# line file}, in which case it is treated normally.
-@node Sparc-Dependent, i386-Dependent, M68K-Dependent, Machine Dependent
+@node Sparc-Dependent
@section SPARC Dependent Features
@cindex SPARC support
* Sparc-Directives:: Sparc Machine Directives
@end menu
-@node Sparc-Opts, Sparc-Float, Sparc-Dependent, Sparc-Dependent
+@node Sparc-Opts
@subsection Options
@cindex options for SPARC (none)
will have to write this section.
@end ignore
-@node Sparc-Float, Sparc-Directives, Sparc-Opts, Sparc-Dependent
+@node Sparc-Float
@subsection Floating Point
@cindex floating point, SPARC (@sc{ieee})
@cindex SPARC floating point (@sc{ieee})
The Sparc uses @sc{ieee} floating-point numbers.
-@node Sparc-Directives, , Sparc-Float, Sparc-Dependent
+@node Sparc-Directives
@subsection Sparc Machine Directives
@cindex SPARC machine directives
instead of the 16 bit values it produces on many other machines.
@end table
-@c FIXME! Conditionalize for all combinations in this section
-@node i386-Dependent, , Sparc-Dependent, Machine Dependent
+@node i386-Dependent
@section 80386 Dependent Features
@cindex i386 support
* i386-Notes:: Notes
@end menu
-@node i386-Options, i386-Syntax, i386-Dependent, i386-Dependent
+@node i386-Options
@subsection Options
@cindex options for i386 (none)
@cindex i386 options (none)
The 80386 has no machine dependent options.
-@node i386-Syntax, i386-Opcodes, i386-Options, i386-Dependent
+@node i386-Syntax
@subsection AT&T Syntax versus Intel Syntax
@cindex i386 syntax compatibility
programs. Unix style systems expect all programs to be single sections.
@end itemize
-@node i386-Opcodes, i386-Regs, i386-Syntax, i386-Dependent
+@node i386-Opcodes
@subsection Opcode Naming
@cindex i386 opcode naming
AT&T syntax, but are @samp{call far} and @samp{jump far} in Intel
convention.
-@node i386-Regs, i386-prefixes, i386-Opcodes, i386-Dependent
+@node i386-Regs
@subsection Register Naming
@cindex i386 registers
@samp{%st(4)}, @samp{%st(5)}, @samp{%st(6)}, and @samp{%st(7)}.
@end itemize
-@node i386-prefixes, i386-Memory, i386-Regs, i386-Dependent
+@node i386-prefixes
@subsection Opcode Prefixes
@cindex i386 opcode prefixes
to string instructions to make them repeat @samp{%ecx} times.
@end itemize
-@node i386-Memory, i386-jumps, i386-prefixes, i386-Dependent
+@node i386-Memory
@subsection Memory References
@cindex i386 memory references
word, or long) with an opcode suffix (@samp{b}, @samp{w}, or @samp{l},
respectively).
-@node i386-jumps, i386-Float, i386-Memory, i386-Dependent
+@node i386-jumps
@subsection Handling of Jump Instructions
@cindex jump optimization, i386
cx_nonzero:
@end smallexample
-@node i386-Float, i386-Notes, i386-jumps, i386-Dependent
+@node i386-Float
@subsection Floating Point
@cindex i386 floating point
instructions are made equivalent to @samp{f@dots{}} instructions. If
@samp{fwait} is desired it must be explicitly coded.
-@node i386-Notes, , i386-Float, i386-Dependent
+@node i386-Notes
@subsection Notes
@cindex i386 @code{mul}, @code{imul} instructions
$69, %eax, %eax}.
-@node Copying, Index, Machine Dependent, Top
+@node Copying
@unnumbered GNU GENERAL PUBLIC LICENSE
@cindex license
library. If this is what you want to do, use the GNU Library General
Public License instead of this License.
-@node Index, , Copying, Top
+@node Index
@unnumbered Index
@printindex cp