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