\chapentry {Overview}{1}{1} \secentry {Structure of this Manual}{1}{1}{5} \secentry {The GNU Assembler}{1}{2}{5} \secentry {Object File Formats}{1}{3}{6} \secentry {Command Line}{1}{4}{6} \secentry {Input Files}{1}{5}{6} \secentry {Output (Object) File}{1}{6}{7} \secentry {Error and Warning Messages}{1}{7}{7} \chapentry {Command-Line Options}{2}{9} \secentry {Enable Listings: \code {-a[cdhlns]}}{2}{1}{9} \secentry {\code {-D}}{2}{2}{9} \secentry {Work Faster: \code {-f}}{2}{3}{9} \secentry {\code {.include} search path: \code {-I} \var {path}}{2}{4}{10} \secentry {Difference Tables: \code {-K}}{2}{5}{10} \secentry {Include Local Labels: \code {-L}}{2}{6}{10} \secentry {Assemble in MRI Compatibility Mode: \code {-M}}{2}{7}{10} \secentry {Dependency tracking: \code {--MD}}{2}{8}{12} \secentry {Name the Object File: \code {-o}}{2}{9}{12} \secentry {Join Data and Text Sections: \code {-R}}{2}{10}{12} \secentry {Display Assembly Statistics: \code {--statistics}}{2}{11}{13} \secentry {Compatible output: \code {--traditional-format}}{2}{12}{13} \secentry {Announce Version: \code {-v}}{2}{13}{13} \secentry {Suppress Warnings: \code {-W}}{2}{14}{13} \secentry {Generate Object File in Spite of Errors: \code {-Z}}{2}{15}{13} \chapentry {Syntax}{3}{15} \secentry {Preprocessing}{3}{1}{15} \secentry {Whitespace}{3}{2}{15} \secentry {Comments}{3}{3}{15} \secentry {Symbols}{3}{4}{16} \secentry {Statements}{3}{5}{16} \secentry {Constants}{3}{6}{17} \subsecentry {Character Constants}{3}{6}{1}{17} \subsubsecentry {Strings} {3}{6}{1}{1} {17} \subsubsecentry {Characters} {3}{6}{1}{2} {18} \subsecentry {Number Constants}{3}{6}{2}{19} \subsubsecentry {Integers} {3}{6}{2}{1} {19} \subsubsecentry {Bignums} {3}{6}{2}{2} {19} \subsubsecentry {Flonums} {3}{6}{2}{3} {19} \chapentry {Sections and Relocation}{4}{21} \secentry {Background}{4}{1}{21} \secentry {Linker Sections}{4}{2}{22} \secentry {Assembler Internal Sections}{4}{3}{23} \secentry {Sub-Sections}{4}{4}{23} \secentry {bss Section}{4}{5}{24} \chapentry {Symbols}{5}{27} \secentry {Labels}{5}{1}{27} \secentry {Giving Symbols Other Values}{5}{2}{27} \secentry {Symbol Names}{5}{3}{27} \secentry {The Special Dot Symbol}{5}{4}{28} \secentry {Symbol Attributes}{5}{5}{28} \subsecentry {Value}{5}{5}{1}{28} \subsecentry {Type}{5}{5}{2}{29} \subsecentry {Symbol Attributes: \code {a.out}}{5}{5}{3}{29} \subsubsecentry {Descriptor} {5}{5}{3}{1} {29} \subsubsecentry {Other} {5}{5}{3}{2} {29} \subsecentry {Symbol Attributes for COFF}{5}{5}{4}{29} \subsubsecentry {Primary Attributes} {5}{5}{4}{1} {29} \subsubsecentry {Auxiliary Attributes} {5}{5}{4}{2} {29} \subsecentry {Symbol Attributes for SOM}{5}{5}{5}{29} \chapentry {Expressions}{6}{31} \secentry {Empty Expressions}{6}{1}{31} \secentry {Integer Expressions}{6}{2}{31} \subsecentry {Arguments}{6}{2}{1}{31} \subsecentry {Operators}{6}{2}{2}{31} \subsecentry {Prefix Operator}{6}{2}{3}{32} \subsecentry {Infix Operators}{6}{2}{4}{32} \chapentry {Assembler Directives}{7}{33} \secentry {\code {.abort}}{7}{1}{33} \secentry {\code {.ABORT}}{7}{2}{33} \secentry {\code {.align \var {abs-expr}, \var {abs-expr}, \var {abs-expr}}}{7}{3}{33} \secentry {\code {.app-file \var {string}}}{7}{4}{34} \secentry {\code {.ascii {\tt\char'042}\var {string}{\tt\char'042}}\dots{}}{7}{5}{34} \secentry {\code {.asciz {\tt\char'042}\var {string}{\tt\char'042}}\dots{}}{7}{6}{34} \secentry {\code {.balign[wl] \var {abs-expr}, \var {abs-expr}, \var {abs-expr}}}{7}{7}{34} \secentry {\code {.byte \var {expressions}}}{7}{8}{35} \secentry {\code {.comm \var {symbol} , \var {length} }}{7}{9}{35} \secentry {\code {.data \var {subsection}}}{7}{10}{35} \secentry {\code {.def \var {name}}}{7}{11}{35} \secentry {\code {.desc \var {symbol}, \var {abs-expression}}}{7}{12}{35} \secentry {\code {.dim}}{7}{13}{36} \secentry {\code {.double \var {flonums}}}{7}{14}{36} \secentry {\code {.eject}}{7}{15}{36} \secentry {\code {.else}}{7}{16}{36} \secentry {\code {.endef}}{7}{17}{36} \secentry {\code {.endif}}{7}{18}{36} \secentry {\code {.equ \var {symbol}, \var {expression}}}{7}{19}{36} \secentry {\code {.equiv \var {symbol}, \var {expression}}}{7}{20}{37} \secentry {\code {.err}}{7}{21}{37} \secentry {\code {.extern}}{7}{22}{37} \secentry {\code {.file \var {string}}}{7}{23}{37} \secentry {\code {.fill \var {repeat} , \var {size} , \var {value}}}{7}{24}{37} \secentry {\code {.float \var {flonums}}}{7}{25}{38} \secentry {\code {.global \var {symbol}}, \code {.globl \var {symbol}}}{7}{26}{38} \secentry {\code {.hword \var {expressions}}}{7}{27}{38} \secentry {\code {.ident}}{7}{28}{38} \secentry {\code {.if \var {absolute expression}}}{7}{29}{38} \secentry {\code {.include {\tt\char'042}\var {file}{\tt\char'042}}}{7}{30}{39} \secentry {\code {.int \var {expressions}}}{7}{31}{39} \secentry {\code {.irp \var {symbol},\var {values}}\dots{}}{7}{32}{39} \secentry {\code {.irpc \var {symbol},\var {values}}\dots{}}{7}{33}{39} \secentry {\code {.lcomm \var {symbol} , \var {length}}}{7}{34}{40} \secentry {\code {.lflags}}{7}{35}{40} \secentry {\code {.line \var {line-number}}}{7}{36}{40} \secentry {\code {.linkonce [\var {type}]}}{7}{37}{40} \secentry {\code {.ln \var {line-number}}}{7}{38}{41} \secentry {\code {.mri \var {val}}}{7}{39}{41} \secentry {\code {.list}}{7}{40}{41} \secentry {\code {.long \var {expressions}}}{7}{41}{41} \secentry {\code {.macro}}{7}{42}{41} \secentry {\code {.nolist}}{7}{43}{42} \secentry {\code {.octa \var {bignums}}}{7}{44}{43} \secentry {\code {.org \var {new-lc} , \var {fill}}}{7}{45}{43} \secentry {\code {.p2align[wl] \var {abs-expr}, \var {abs-expr}, \var {abs-expr}}}{7}{46}{43} \secentry {\code {.psize \var {lines} , \var {columns}}}{7}{47}{44} \secentry {\code {.quad \var {bignums}}}{7}{48}{44} \secentry {\code {.rept \var {count}}}{7}{49}{44} \secentry {\code {.sbttl {\tt\char'042}\var {subheading}{\tt\char'042}}}{7}{50}{44} \secentry {\code {.scl \var {class}}}{7}{51}{45} \secentry {\code {.section \var {name}}}{7}{52}{45} \secentry {\code {.set \var {symbol}, \var {expression}}}{7}{53}{46} \secentry {\code {.short \var {expressions}}}{7}{54}{46} \secentry {\code {.single \var {flonums}}}{7}{55}{46} \secentry {\code {.size}}{7}{56}{46} \secentry {\code {.sleb128 \var {expressions}}}{7}{57}{47} \secentry {\code {.skip \var {size} , \var {fill}}}{7}{58}{47} \secentry {\code {.space \var {size} , \var {fill}}}{7}{59}{47} \secentry {\code {.stabd, .stabn, .stabs}}{7}{60}{47} \secentry {\code {.string} {\tt\char'042}\var {str}{\tt\char'042}}{7}{61}{48} \secentry {\code {.symver}}{7}{62}{48} \secentry {\code {.tag \var {structname}}}{7}{63}{49} \secentry {\code {.text \var {subsection}}}{7}{64}{49} \secentry {\code {.title {\tt\char'042}\var {heading}{\tt\char'042}}}{7}{65}{49} \secentry {\code {.type \var {int}}}{7}{66}{49} \secentry {\code {.val \var {addr}}}{7}{67}{49} \secentry {\code {.uleb128 \var {expressions}}}{7}{68}{49} \secentry {\code {.word \var {expressions}}}{7}{69}{50} \secentry {Deprecated Directives}{7}{70}{50} \chapentry {Machine Dependent Features}{8}{51} \secentry {ARC Dependent Features}{8}{1}{52} \subsecentry {Options}{8}{1}{1}{52} \subsecentry {Floating Point}{8}{1}{2}{52} \subsecentry {ARC Machine Directives}{8}{1}{3}{52} \secentry {AMD 29K Dependent Features}{8}{2}{53} \subsecentry {Options}{8}{2}{1}{53} \subsecentry {Syntax}{8}{2}{2}{53} \subsubsecentry {Macros} {8}{2}{2}{1} {53} \subsubsecentry {Special Characters} {8}{2}{2}{2} {53} \subsubsecentry {Register Names} {8}{2}{2}{3} {53} \subsecentry {Floating Point}{8}{2}{3}{53} \subsecentry {AMD 29K Machine Directives}{8}{2}{4}{54} \subsecentry {Opcodes}{8}{2}{5}{54} \secentry {ARM Dependent Features}{8}{3}{55} \subsecentry {Options}{8}{3}{1}{55} \subsecentry {Syntax}{8}{3}{2}{55} \subsubsecentry {Special Characters} {8}{3}{2}{1} {55} \subsubsecentry {Register Names} {8}{3}{2}{2} {56} \subsecentry {Floating Point}{8}{3}{3}{56} \subsecentry {ARM Machine Directives}{8}{3}{4}{56} \subsecentry {Opcodes}{8}{3}{5}{56} \secentry {D10V Dependent Features}{8}{4}{57} \subsecentry {D10V Options}{8}{4}{1}{57} \subsecentry {Syntax}{8}{4}{2}{57} \subsubsecentry {Size Modifiers} {8}{4}{2}{1} {57} \subsubsecentry {Sub-Instructions} {8}{4}{2}{2} {57} \subsubsecentry {Special Characters} {8}{4}{2}{3} {58} \subsubsecentry {Register Names} {8}{4}{2}{4} {58} \subsubsecentry {Addressing Modes} {8}{4}{2}{5} {59} \subsubsecentry {{\tt\char'100}WORD Modifier} {8}{4}{2}{6} {60} \subsecentry {Floating Point}{8}{4}{3}{60} \subsecentry {Opcodes}{8}{4}{4}{60} \secentry {H8/300 Dependent Features}{8}{5}{61} \subsecentry {Options}{8}{5}{1}{61} \subsecentry {Syntax}{8}{5}{2}{61} \subsubsecentry {Special Characters} {8}{5}{2}{1} {61} \subsubsecentry {Register Names} {8}{5}{2}{2} {61} \subsubsecentry {Addressing Modes} {8}{5}{2}{3} {61} \subsecentry {Floating Point}{8}{5}{3}{62} \subsecentry {H8/300 Machine Directives}{8}{5}{4}{63} \subsecentry {Opcodes}{8}{5}{5}{63} \secentry {H8/500 Dependent Features}{8}{6}{64} \subsecentry {Options}{8}{6}{1}{64} \subsecentry {Syntax}{8}{6}{2}{64} \subsubsecentry {Special Characters} {8}{6}{2}{1} {64} \subsubsecentry {Register Names} {8}{6}{2}{2} {64} \subsubsecentry {Addressing Modes} {8}{6}{2}{3} {64} \subsecentry {Floating Point}{8}{6}{3}{65} \subsecentry {H8/500 Machine Directives}{8}{6}{4}{65} \subsecentry {Opcodes}{8}{6}{5}{65} \secentry {HPPA Dependent Features}{8}{7}{66} \subsecentry {Notes}{8}{7}{1}{66} \subsecentry {Options}{8}{7}{2}{66} \subsecentry {Syntax}{8}{7}{3}{66} \subsecentry {Floating Point}{8}{7}{4}{66} \subsecentry {HPPA Assembler Directives}{8}{7}{5}{67} \subsecentry {Opcodes}{8}{7}{6}{69} \secentry {80386 Dependent Features}{8}{8}{70} \subsecentry {Options}{8}{8}{1}{70} \subsecentry {AT&T Syntax versus Intel Syntax}{8}{8}{2}{70} \subsecentry {Opcode Naming}{8}{8}{3}{70} \subsecentry {Register Naming}{8}{8}{4}{71} \subsecentry {Opcode Prefixes}{8}{8}{5}{71} \subsecentry {Memory References}{8}{8}{6}{72} \subsecentry {Handling of Jump Instructions}{8}{8}{7}{73} \subsecentry {Floating Point}{8}{8}{8}{73} \subsecentry {Writing 16-bit Code}{8}{8}{9}{73} \subsecentry {Notes}{8}{8}{10}{74} \secentry {Intel 80960 Dependent Features}{8}{9}{75} \subsecentry {i960 Command-line Options}{8}{9}{1}{75} \subsecentry {Floating Point}{8}{9}{2}{76} \subsecentry {i960 Machine Directives}{8}{9}{3}{76} \subsecentry {i960 Opcodes}{8}{9}{4}{77} \subsubsecentry {\code {callj}} {8}{9}{4}{1} {77} \subsubsecentry {Compare-and-Branch} {8}{9}{4}{2} {77} \secentry {M680x0 Dependent Features}{8}{10}{79} \subsecentry {M680x0 Options}{8}{10}{1}{79} \subsecentry {Syntax}{8}{10}{2}{81} \subsecentry {Motorola Syntax}{8}{10}{3}{82} \subsecentry {Floating Point}{8}{10}{4}{83} \subsecentry {680x0 Machine Directives}{8}{10}{5}{83} \subsecentry {Opcodes}{8}{10}{6}{83} \subsubsecentry {Branch Improvement} {8}{10}{6}{1} {83} \subsubsecentry {Special Characters} {8}{10}{6}{2} {85} \secentry {MIPS Dependent Features}{8}{11}{86} \subsecentry {Assembler options}{8}{11}{1}{86} \subsecentry {MIPS ECOFF object code}{8}{11}{2}{87} \subsecentry {Directives for debugging information}{8}{11}{3}{87} \subsecentry {Directives to override the ISA level}{8}{11}{4}{88} \subsecentry {Directives for extending MIPS 16 bit instructions}{8}{11}{5}{88} \subsecentry {Directive to mark data as an instruction}{8}{11}{6}{88} \subsecentry {Directives to save and restore options}{8}{11}{7}{88} \secentry {Hitachi SH Dependent Features}{8}{12}{89} \subsecentry {Options}{8}{12}{1}{89} \subsecentry {Syntax}{8}{12}{2}{89} \subsubsecentry {Special Characters} {8}{12}{2}{1} {89} \subsubsecentry {Register Names} {8}{12}{2}{2} {89} \subsubsecentry {Addressing Modes} {8}{12}{2}{3} {89} \subsecentry {Floating Point}{8}{12}{3}{90} \subsecentry {SH Machine Directives}{8}{12}{4}{90} \subsecentry {Opcodes}{8}{12}{5}{90} \secentry {SPARC Dependent Features}{8}{13}{91} \subsecentry {Options}{8}{13}{1}{91} \subsecentry {Enforcing aligned data}{8}{13}{2}{91} \subsecentry {Floating Point}{8}{13}{3}{92} \subsecentry {Sparc Machine Directives}{8}{13}{4}{92} \secentry {Z8000 Dependent Features}{8}{14}{93} \subsecentry {Options}{8}{14}{1}{93} \subsecentry {Syntax}{8}{14}{2}{93} \subsubsecentry {Special Characters} {8}{14}{2}{1} {93} \subsubsecentry {Register Names} {8}{14}{2}{2} {93} \subsubsecentry {Addressing Modes} {8}{14}{2}{3} {93} \subsecentry {Assembler Directives for the Z8000}{8}{14}{3}{94} \subsecentry {Opcodes}{8}{14}{4}{95} \secentry {VAX Dependent Features}{8}{15}{95} \subsecentry {VAX Command-Line Options}{8}{15}{1}{95} \subsecentry {VAX Floating Point}{8}{15}{2}{96} \subsecentry {Vax Machine Directives}{8}{15}{3}{96} \subsecentry {VAX Opcodes}{8}{15}{4}{96} \subsecentry {VAX Branch Improvement}{8}{15}{5}{96} \subsecentry {VAX Operands}{8}{15}{6}{98} \subsecentry {Not Supported on VAX}{8}{15}{7}{98} \secentry {v850 Dependent Features}{8}{16}{98} \subsecentry {Options}{8}{16}{1}{99} \subsecentry {Syntax}{8}{16}{2}{99} \subsubsecentry {Special Characters} {8}{16}{2}{1} {99} \subsubsecentry {Register Names} {8}{16}{2}{2} {99} \subsecentry {Floating Point}{8}{16}{3}{101} \subsecentry {V850 Machine Directives}{8}{16}{4}{101} \subsecentry {Opcodes}{8}{16}{5}{102} \chapentry {Reporting Bugs}{9}{105} \secentry {Have you found a bug?}{9}{1}{105} \secentry {How to report bugs}{9}{2}{105} \chapentry {Acknowledgements}{10}{109} \unnumbchapentry {Index}{111}