Red Hat Enterprise Linux 4
Using as, the Gnu Assembler
Legal Notice
- Table of Contents
- 1. Using as
- 2. Overview
- 2.1. Structure of this Manual
- 2.2. The GNU Assembler
- 2.3. Object File Formats
- 2.4. Command Line
- 2.5. Input Files
- 2.5.1. Filenames and Line-numbers
- 2.6. Output (Object) File
- 2.7. Error and Warning Messages
- 3. Command-Line Options
- 3.1. Enable Listings: -a[cdhlns]
- 3.2. -alternate
- 3.3. -D
- 3.4. Work Faster: -f
- 3.5. .includeSearch Path: -Ipath
- 3.6. Difference Tables: -K
- 3.7. Include Local Labels: -L
- 3.8. Configuring listing output: -listing
- 3.9. Assemble in MRI Compatibility Mode: -M
- 3.10. Dependency Tracking: -MD
- 3.11. Name the Object File: -o
- 3.12. Join Data and Text Sections: -R
- 3.13. Display Assembly Statistics: -statistics
- 3.14. Compatible Output: -traditional-format
- 3.15. Announce Version: -v
- 3.16. Control Warnings: -W, -warn, -no-warn, -fatal-warnings
- 3.17. Generate Object File in Spite of Errors: -Z
- 4. Syntax
- 4.1. Preprocessing
- 4.2. Whitespace
- 4.3. Comments
- 4.4. Symbols
- 4.5. Statements
- 4.6. Constants
- 4.6.1. Character Constants
- 4.6.2. Number Constants
- 5. Sections and Relocation
- 5.1. Background
- 5.2. Linker Sections
- 5.3. Assembler Internal Sections
- 5.4. Sub-Sections
- 5.5. bss Section
- 6. Symbols
- 6.1. Labels
- 6.2. Giving Symbols Other Values
- 6.3. Symbol Names
- 6.3.1. Local Symbol Names
- 6.3.2. Dollar Local Labels
- 6.4. The Special Dot Symbol
- 6.5. Symbol Attributes
- 6.5.1. Value
- 6.5.2. Type
- 6.5.3. Symbol Attributes: a.out
- 6.5.4. Symbol Attributes for COFF
- 6.5.5. Symbol Attributes for SOM
- 7. Expressions
- 7.1. Empty Expressions
- 7.2. Integer Expressions
- 7.2.1. Arguments
- 7.2.2. Operators
- 7.2.3. Prefix Operator
- 7.2.4. Infix Operators
- 8. Assembler Directives
- 8.1. .abort
- 8.2. .ABORT
- 8.3. .align abs-expr, abs-expr, abs-expr
- 8.4. .ascii "string"…
- 8.5. .asciz "string"…
- 8.6. .balign[wl] abs-expr, abs-expr, abs-expr
- 8.7. .byte expressions
- 8.8. .comm symbol, length
- 8.9. .cfi_startproc
- 8.10. .cfi_endproc
- 8.11. .cfi_def_cfa register, offset
- 8.12. .cfi_def_cfa_register register
- 8.13. .cfi_def_cfa_offset offset
- 8.14. .cfi_adjust_cfa_offset offset
- 8.15. .cfi_offset register, offset
- 8.16. .cfi_rel_offset register, offset
- 8.17. .cfi_window_save
- 8.18. .cfi_escapeexpression[, …]
- 8.19. .data subsection
- 8.20. .def name
- 8.21. .desc symbol, abs-expression
- 8.22. .dim
- 8.23. .double flonums
- 8.24. .eject
- 8.25. .else
- 8.26. .elseif
- 8.27. .end
- 8.28. .endef
- 8.29. .endfunc
- 8.30. .endif
- 8.31. .equ symbol, expression
- 8.32. .equiv symbol, expression
- 8.33. .err
- 8.34. .exitm
- 8.35. .extern
- 8.36. .fail expression
- 8.37. .file string
- 8.38. .fill repeat, size, value
- 8.39. .float flonums
- 8.40. .func name[,label]
- 8.41. .global symbol, .globl symbol
- 8.42. .hidden names
- 8.43. .hword expressions
- 8.44. .ident
- 8.45. .if absolute expression
- 8.46. .incbin "file"[,skip[,count]]
- 8.47. .include "file"
- 8.48. .int expressions
- 8.49. .internal names
- 8.50. .irp symbol,values…
- 8.51. .irpc symbol,values…
- 8.52. .lcomm symbol, length
- 8.53. .lflags
- 8.54. .line line-number
- 8.55. .linkonce [type]
- 8.56. .ln line-number
- 8.57. .mri val
- 8.58. .list
- 8.59. .long expressions
- 8.60. .macro
- 8.61. .altmacro
- 8.62. .noaltmacro
- 8.63. .nolist
- 8.64. .octa bignums
- 8.65. .org new-lc, fill
- 8.66. .p2align[wl] abs-expr, abs-expr, abs-expr
- 8.67. .previous
- 8.68. .popsection
- 8.69. .print string
- 8.70. .protected names
- 8.71. .psize lines, columns
- 8.72. .purgem name
- 8.73. .pushsection name, subsection
- 8.74. .quad bignums
- 8.75. .rept count
- 8.76. .sbttl "subheading"
- 8.77. .scl class
- 8.78. .section name
- 8.78.1. COFF Version
- 8.78.2. ELF Version
- 8.79. .set symbol, expression
- 8.80. .short expressions
- 8.81. .single flonums
- 8.82. .size
- 8.82.1. COFF Version
- 8.82.2. ELF Version
- 8.83. .sleb128 expressions
- 8.84. .skip size, fill
- 8.85. .space size, fill
- 8.86. .stabd, .stabn, .stabs
- 8.87. .string"str"
- 8.88. .struct expression
- 8.89. .subsection name
- 8.90. .symver
- 8.91. .tag structname
- 8.92. .text subsection
- 8.93. .title "heading"
- 8.94. .type
- 8.94.1. COFF Version
- 8.94.2. ELF Version
- 8.95. .uleb128 expressions
- 8.96. .val addr
- 8.97. .version "string"
- 8.98. .vtable_entry table, offset
- 8.99. .vtable_inherit child, parent
- 8.100. .weak names
- 8.101. .word expressions
- 8.102. Deprecated Directives
- 9. Machine Dependent Features
- 10. AMD 29K Dependent Features
- 10.1. Options
- 10.2. Syntax
- 10.2.1. Macros
- 10.2.2. Special Characters
- 10.2.3. Register Names
- 10.3. Floating Point
- 10.4. AMD 29K Machine Directives
- 10.5. Opcodes
- 11. Alpha Dependent Features
- 11.1. Notes
- 11.2. Options
- 11.3. Syntax
- 11.3.1. Special Characters
- 11.3.2. Register Names
- 11.3.3. Relocations
- 11.4. Floating Point
- 11.5. Alpha Assembler Directives
- 11.6. Opcodes
- 12. ARC Dependent Features
- 12.1. Options
- 12.2. Syntax
- 12.2.1. Special Characters
- 12.2.2. Register Names
- 12.3. Floating Point
- 12.4. ARC Machine Directives
- 12.5. Opcodes
- 13. ARM Dependent Features
- 13.1. Options
- 13.2. Syntax
- 13.2.1. Special Characters
- 13.2.2. Register Names
- 13.3. Floating Point
- 13.4. ARM Machine Directives
- 13.5. Opcodes
- 13.6. Mapping Symbols
- 14. CRIS Dependent Features
- 14.1. Command-line Options
- 14.2. Instruction expansion
- 14.3. Syntax
- 14.3.1. Special Characters
- 14.3.2. Symbols in position-independent code
- 14.3.3. Register names
- 14.3.4. Assembler Directives
- 15. D10V Dependent Features
- 15.1. D10V Options
- 15.2. Syntax
- 15.2.1. Size Modifiers
- 15.2.2. Sub-Instructions
- 15.2.3. Special Characters
- 15.2.4. Register Names
- 15.2.5. Addressing Modes
- 15.2.6. @WORD Modifier
- 15.3. Floating Point
- 15.4. Opcodes
- 16. D30V Dependent Features
- 16.1. D30V Options
- 16.2. Syntax
- 16.2.1. Size Modifiers
- 16.2.2. Sub-Instructions
- 16.2.3. Special Characters
- 16.2.4. Guarded Execution
- 16.2.5. Register Names
- 16.2.6. Addressing Modes
- 16.3. Floating Point
- 16.4. Opcodes
- 17. H8/300 Dependent Features
- 17.1. Options
- 17.2. Syntax
- 17.2.1. Special Characters
- 17.2.2. Register Names
- 17.2.3. Addressing Modes
- 17.3. Floating Point
- 17.4. H8/300 Machine Directives
- 17.5. Opcodes
- 18. H8/500 Dependent Features
- 18.1. Options
- 18.2. Syntax
- 18.2.1. Special Characters
- 18.2.2. Register Names
- 18.2.3. Addressing Modes
- 18.3. Floating Point
- 18.4. H8/500 Machine Directives
- 18.5. Opcodes
- 19. HPPA Dependent Features
- 19.1. Notes
- 19.2. Options
- 19.3. Syntax
- 19.4. Floating Point
- 19.5. HPPA Assembler Directives
- 19.6. Opcodes
- 20. ESA/390 Dependent Features
- 20.1. Notes
- 20.2. Options
- 20.3. Syntax
- 20.4. Floating Point
- 20.5. ESA/390 Assembler Directives
- 20.6. Opcodes
- 21. 80386 Dependent Features
- 21.1. Options
- 21.2. AT&T Syntax versus Intel Syntax
- 21.3. Instruction Naming
- 21.4. Register Naming
- 21.5. Instruction Prefixes
- 21.6. Memory References
- 21.7. Handling of Jump Instructions
- 21.8. Floating Point
- 21.9. Intel's MMX and AMD's 3DNow! SIMD Operations
- 21.10. Writing 16-bit Code
- 21.11. AT&T Syntax bugs
- 21.12. Specifying CPU Architecture
- 21.13. Notes
- 22. Intel i860 Dependent Features
- 22.1. i860 Notes
- 22.2. i860 Command-line Options
- 22.2.1. SVR4 compatibility options
- 22.2.2. Other options
- 22.3. i860 Machine Directives
- 22.4. i860 Opcodes
- 22.4.1. Other instruction support (pseudo-instructions)
- 23. Intel 80960 Dependent Features
- 23.1. i960 Command-line Options
- 23.2. Floating Point
- 23.3. i960 Machine Directives
- 23.4. i960 Opcodes
- 23.4.1. callj
- 23.4.2. Compare-and-Branch
- 24. IP2K Dependent Features
- 24.1. IP2K Options
- 25. M32R Dependent Features
- 25.1. M32R Options
- 25.2. M32R Directives
- 25.3. M32R Warnings
- 26. M680x0 Dependent Features
- 26.1. M680x0 Options
- 26.2. Syntax
- 26.3. Motorola Syntax
- 26.4. Floating Point
- 26.5. 680x0 Machine Directives
- 26.6. Opcodes
- 26.6.1. Branch Improvement
- 26.6.2. Special Characters
- 27. M68HC11 and M68HC12 Dependent Features
- 27.1. M68HC11 and M68HC12 Options
- 27.2. Syntax
- 27.3. Symbolic Operand Modifiers
- 27.4. Assembler Directives
- 27.5. Floating Point
- 27.6. Opcodes
- 27.6.1. Branch Improvement
- 28. Motorola M88K Dependent Features
- 28.1. M88K Machine Directives
- 29. MIPS Dependent Features
- 29.1. Assembler options
- 29.2. MIPS ECOFF object code
- 29.3. Directives for debugging information
- 29.4. Directives to override the ISA level
- 29.5. Directives for extending MIPS 16 bit instructions
- 29.6. Directive to mark data as an instruction
- 29.7. Directives to save and restore options
- 29.8. Directives to control generation of MIPS ASE instructions
- 30. MMIX Dependent Features
- 30.1. Command-line Options
- 30.2. Instruction expansion
- 30.3. Syntax
- 30.3.1. Special Characters
- 30.3.2. Symbols
- 30.3.3. Register names
- 30.3.4. Assembler Directives
- 30.4. Differences to mmixal
- 31. MSP 430 Dependent Features
- 31.1. Options
- 31.2. Syntax
- 31.2.1. Macros
- 31.2.2. Special Characters
- 31.2.3. Register Names
- 31.2.4. Assembler Extensions
- 31.3. Floating Point
- 31.4. MSP 430 Machine Directives
- 31.5. Opcodes
- 31.6. Profiling Capability
- 32. PDP-11 Dependent Features
- 32.1. Options
- 32.1.1. Code Generation Options
- 32.1.2. Instruction Set Extension Options
- 32.1.3. CPU Model Options
- 32.1.4. Machine Model Options
- 32.2. Assembler Directives
- 32.3. PDP-11 Assembly Language Syntax
- 32.4. Instruction Naming
- 32.5. Synthetic Instructions
- 33. picoJava Dependent Features
- 33.1. Options
- 34. PowerPC Dependent Features
- 34.1. Options
- 34.2. PowerPC Assembler Directives
- 35. Renesas / SuperH SH Dependent Features
- 35.1. Options
- 35.2. Syntax
- 35.2.1. Special Characters
- 35.2.2. Register Names
- 35.2.3. Addressing Modes
- 35.3. Floating Point
- 35.4. SH Machine Directives
- 35.5. Opcodes
- 36. SuperH SH64 Dependent Features
- 36.1. Options
- 36.2. Syntax
- 36.2.1. Special Characters
- 36.2.2. Register Names
- 36.2.3. Addressing Modes
- 36.3. SH64 Machine Directives
- 36.4. Opcodes
- 37. SPARC Dependent Features
- 37.1. Options
- 37.2. Enforcing aligned data
- 37.3. Floating Point
- 37.4. Sparc Machine Directives
- 38. TIC54X Dependent Features
- 38.1. Options
- 38.2. Blocking
- 38.3. Environment Settings
- 38.4. Constants Syntax
- 38.5. String Substitution
- 38.6. Local Labels
- 38.7. Math Builtins
- 38.8. Extended Addressing
- 38.9. Directives
- 38.10. Macros
- 38.11. Memory-mapped Registers
- 39. Z8000 Dependent Features
- 39.1. Options
- 39.2. Syntax
- 39.2.1. Special Characters
- 39.2.2. Register Names
- 39.2.3. Addressing Modes
- 39.3. Assembler Directives for the Z8000
- 39.4. Opcodes
- 40. VAX Dependent Features
- 40.1. VAX Command-Line Options
- 40.2. VAX Floating Point
- 40.3. Vax Machine Directives
- 40.4. VAX Opcodes
- 40.5. VAX Branch Improvement
- 40.6. VAX Operands
- 40.7. Not Supported on VAX
- 41. v850 Dependent Features
- 41.1. Options
- 41.2. Syntax
- 41.2.1. Special Characters
- 41.2.2. Register Names
- 41.3. Floating Point
- 41.4. V850 Machine Directives
- 41.5. Opcodes
- 42. Xtensa Dependent Features
- 42.1. Command Line Options
- 42.2. Assembler Syntax
- 42.2.1. Opcode Names
- 42.2.2. Register Names
- 42.3. Xtensa Optimizations
- 42.3.1. Using Density Instructions
- 42.3.2. Automatic Instruction Alignment
- 42.4. Xtensa Relaxation
- 42.4.1. Conditional Branch Relaxation
- 42.4.2. Function Call Relaxation
- 42.4.3. Other Immediate Field Relaxation
- 42.5. Directives
- 42.5.1. density
- 42.5.2. relax
- 42.5.3. longcalls
- 42.5.4. generics
- 42.5.5. literal
- 42.5.6. literal_position
- 42.5.7. literal_prefix
- 42.5.8. freeregs
- 42.5.9. frame
- 43. Reporting Bugs
- 43.1. Have You Found a Bug?
- 43.2. How to Report Bugs
- 44. Acknowledgements
- A. GNU Free Documentation License
- A.1. ADDENDUM: How to use this License for your documents
- Index