NASM - The Netwide Assembler

version 2.13.03rc1

This manual documents NASM, the Netwide Assembler: an assembler targetting the Intel x86 series of processors, with portable source.

  1. Chapter 1: Introduction
    1. Section 1.1: What Is NASM?
      1. Section 1.1.1: License Conditions
  2. Chapter 2: Running NASM
    1. Section 2.1: NASM Command-Line Syntax
      1. Section 2.1.1: The -o Option: Specifying the Output File Name
      2. Section 2.1.2: The -f Option: Specifying the Output File Format
      3. Section 2.1.3: The -l Option: Generating a Listing File
      4. Section 2.1.4: The -M Option: Generate Makefile Dependencies
      5. Section 2.1.5: The -MG Option: Generate Makefile Dependencies
      6. Section 2.1.6: The -MF Option: Set Makefile Dependency File
      7. Section 2.1.7: The -MD Option: Assemble and Generate Dependencies
      8. Section 2.1.8: The -MT Option: Dependency Target Name
      9. Section 2.1.9: The -MQ Option: Dependency Target Name (Quoted)
      10. Section 2.1.10: The -MP Option: Emit phony targets
      11. Section 2.1.11: The -MW Option: Watcom Make quoting style
      12. Section 2.1.12: The -F Option: Selecting a Debug Information Format
      13. Section 2.1.13: The -g Option: Enabling Debug Information.
      14. Section 2.1.14: The -X Option: Selecting an Error Reporting Format
      15. Section 2.1.15: The -Z Option: Send Errors to a File
      16. Section 2.1.16: The -s Option: Send Errors to stdout
      17. Section 2.1.17: The -i Option: Include File Search Directories
      18. Section 2.1.18: The -p Option: Pre-Include a File
      19. Section 2.1.19: The -d Option: Pre-Define a Macro
      20. Section 2.1.20: The -u Option: Undefine a Macro
      21. Section 2.1.21: The -E Option: Preprocess Only
      22. Section 2.1.22: The -a Option: Don't Preprocess At All
      23. Section 2.1.23: The -O Option: Specifying Multipass Optimization
      24. Section 2.1.24: The -t Option: Enable TASM Compatibility Mode
      25. Section 2.1.25: The -w and -W Options: Enable or Disable Assembly Warnings
      26. Section 2.1.26: The -v Option: Display Version Info
      27. Section 2.1.27: The -y Option: Display Available Debug Info Formats
      28. Section 2.1.28: The --prefix and --postfix Options.
      29. Section 2.1.29: The NASMENV Environment Variable
    2. Section 2.2: Quick Start for MASM Users
      1. Section 2.2.1: NASM Is Case-Sensitive
      2. Section 2.2.2: NASM Requires Square Brackets For Memory References
      3. Section 2.2.3: NASM Doesn't Store Variable Types
      4. Section 2.2.4: NASM Doesn't ASSUME
      5. Section 2.2.5: NASM Doesn't Support Memory Models
      6. Section 2.2.6: Floating-Point Differences
      7. Section 2.2.7: Other Differences
  3. Chapter 3: The NASM Language
    1. Section 3.1: Layout of a NASM Source Line
    2. Section 3.2: Pseudo-Instructions
      1. Section 3.2.1: DB and Friends: Declaring Initialized Data
      2. Section 3.2.2: RESB and Friends: Declaring Uninitialized Data
      3. Section 3.2.3: INCBIN: Including External Binary Files
      4. Section 3.2.4: EQU: Defining Constants
      5. Section 3.2.5: TIMES: Repeating Instructions or Data
    3. Section 3.3: Effective Addresses
    4. Section 3.4: Constants
      1. Section 3.4.1: Numeric Constants
      2. Section 3.4.2: Character Strings
      3. Section 3.4.3: Character Constants
      4. Section 3.4.4: String Constants
      5. Section 3.4.5: Unicode Strings
      6. Section 3.4.6: Floating-Point Constants
      7. Section 3.4.7: Packed BCD Constants
    5. Section 3.5: Expressions
      1. Section 3.5.1: |: Bitwise OR Operator
      2. Section 3.5.2: ^: Bitwise XOR Operator
      3. Section 3.5.3: &: Bitwise AND Operator
      4. Section 3.5.4: << and >>: Bit Shift Operators
      5. Section 3.5.5: + and -: Addition and Subtraction Operators
      6. Section 3.5.6: *, /, //, % and %%: Multiplication and Division
      7. Section 3.5.7: Unary Operators
    6. Section 3.6: SEG and WRT
    7. Section 3.7: STRICT: Inhibiting Optimization
    8. Section 3.8: Critical Expressions
    9. Section 3.9: Local Labels
  4. Chapter 4: The NASM Preprocessor
    1. Section 4.1: Single-Line Macros
      1. Section 4.1.1: The Normal Way: %define
      2. Section 4.1.2: Resolving %define: %xdefine
      3. Section 4.1.3: Macro Indirection: %[...]
      4. Section 4.1.4: Concatenating Single Line Macro Tokens: %+
      5. Section 4.1.5: The Macro Name Itself: %? and %??
      6. Section 4.1.6: Undefining Single-Line Macros: %undef
      7. Section 4.1.7: Preprocessor Variables: %assign
      8. Section 4.1.8: Defining Strings: %defstr
      9. Section 4.1.9: Defining Tokens: %deftok
    2. Section 4.2: String Manipulation in Macros
      1. Section 4.2.1: Concatenating Strings: %strcat
      2. Section 4.2.2: String Length: %strlen
      3. Section 4.2.3: Extracting Substrings: %substr
    3. Section 4.3: Multi-Line Macros: %macro
      1. Section 4.3.1: Overloading Multi-Line Macros
      2. Section 4.3.2: Macro-Local Labels
      3. Section 4.3.3: Greedy Macro Parameters
      4. Section 4.3.4: Macro Parameters Range
      5. Section 4.3.5: Default Macro Parameters
      6. Section 4.3.6: %0: Macro Parameter Counter
      7. Section 4.3.7: %00: Label Preceeding Macro
      8. Section 4.3.8: %rotate: Rotating Macro Parameters
      9. Section 4.3.9: Concatenating Macro Parameters
      10. Section 4.3.10: Condition Codes as Macro Parameters
      11. Section 4.3.11: Disabling Listing Expansion
      12. Section 4.3.12: Undefining Multi-Line Macros: %unmacro
    4. Section 4.4: Conditional Assembly
      1. Section 4.4.1: %ifdef: Testing Single-Line Macro Existence
      2. Section 4.4.2: %ifmacro: Testing Multi-Line Macro Existence
      3. Section 4.4.3: %ifctx: Testing the Context Stack
      4. Section 4.4.4: %if: Testing Arbitrary Numeric Expressions
      5. Section 4.4.5: %ifidn and %ifidni: Testing Exact Text Identity
      6. Section 4.4.6: %ifid, %ifnum, %ifstr: Testing Token Types
      7. Section 4.4.7: %iftoken: Test for a Single Token
      8. Section 4.4.8: %ifempty: Test for Empty Expansion
      9. Section 4.4.9: %ifenv: Test If Environment Variable Exists
    5. Section 4.5: Preprocessor Loops: %rep
    6. Section 4.6: Source Files and Dependencies
      1. Section 4.6.1: %include: Including Other Files
      2. Section 4.6.2: %pathsearch: Search the Include Path
      3. Section 4.6.3: %depend: Add Dependent Files
      4. Section 4.6.4: %use: Include Standard Macro Package
    7. Section 4.7: The Context Stack
      1. Section 4.7.1: %push and %pop: Creating and Removing Contexts
      2. Section 4.7.2: Context-Local Labels
      3. Section 4.7.3: Context-Local Single-Line Macros
      4. Section 4.7.4: Context Fall-Through Lookup (deprecated)
      5. Section 4.7.5: %repl: Renaming a Context
      6. Section 4.7.6: Example Use of the Context Stack: Block IFs
    8. Section 4.8: Stack Relative Preprocessor Directives
      1. Section 4.8.1: %arg Directive
      2. Section 4.8.2: %stacksize Directive
      3. Section 4.8.3: %local Directive
    9. Section 4.9: Reporting User-Defined Errors: %error, %warning, %fatal
    10. Section 4.10: Other Preprocessor Directives
      1. Section 4.10.1: %line Directive
      2. Section 4.10.2: %!variable: Read an Environment Variable.
    11. Section 4.11: Standard Macros
      1. Section 4.11.1: NASM Version Macros
      2. Section 4.11.2: __NASM_VERSION_ID__: NASM Version ID
      3. Section 4.11.3: __NASM_VER__: NASM Version string
      4. Section 4.11.4: __FILE__ and __LINE__: File Name and Line Number
      5. Section 4.11.5: __BITS__: Current BITS Mode
      6. Section 4.11.6: __OUTPUT_FORMAT__: Current Output Format
      7. Section 4.11.7: Assembly Date and Time Macros
      8. Section 4.11.8: __USE_package__: Package Include Test
      9. Section 4.11.9: __PASS__: Assembly Pass
      10. Section 4.11.10: STRUC and ENDSTRUC: Declaring Structure Data Types
      11. Section 4.11.11: ISTRUC, AT and IEND: Declaring Instances of Structures
      12. Section 4.11.12: ALIGN and ALIGNB: Data Alignment
      13. Section 4.11.13: SECTALIGN: Section Alignment
  5. Chapter 5: Standard Macro Packages
    1. Section 5.1: altreg: Alternate Register Names
    2. Section 5.2: smartalign: Smart ALIGN Macro
    3. Section 5.3: fp: Floating-point macros
    4. Section 5.4: ifunc: Integer functions
      1. Section 5.4.1: Integer logarithms
  6. Chapter 6: Assembler Directives
    1. Section 6.1: BITS: Specifying Target Processor Mode
      1. Section 6.1.1: USE16 & USE32: Aliases for BITS
    2. Section 6.2: DEFAULT: Change the assembler defaults
      1. Section 6.2.1: REL & ABS: RIP-relative addressing
      2. Section 6.2.2: BND & NOBND: BND prefix
    3. Section 6.3: SECTION or SEGMENT: Changing and Defining Sections
      1. Section 6.3.1: The __SECT__ Macro
    4. Section 6.4: ABSOLUTE: Defining Absolute Labels
    5. Section 6.5: EXTERN: Importing Symbols from Other Modules
    6. Section 6.6: GLOBAL: Exporting Symbols to Other Modules
    7. Section 6.7: COMMON: Defining Common Data Areas
    8. Section 6.8: CPU: Defining CPU Dependencies
    9. Section 6.9: FLOAT: Handling of floating-point constants
    10. Section 6.10: [WARNING]: Enable or disable warnings
  7. Chapter 7: Output Formats
    1. Section 7.1: bin: Flat-Form Binary Output
      1. Section 7.1.1: ORG: Binary File Program Origin
      2. Section 7.1.2: bin Extensions to the SECTION Directive
      3. Section 7.1.3: Multisection Support for the bin Format
      4. Section 7.1.4: Map Files
    2. Section 7.2: ith: Intel Hex Output
    3. Section 7.3: srec: Motorola S-Records Output
    4. Section 7.4: obj: Microsoft OMF Object Files
      1. Section 7.4.1: obj Extensions to the SEGMENT Directive
      2. Section 7.4.2: GROUP: Defining Groups of Segments
      3. Section 7.4.3: UPPERCASE: Disabling Case Sensitivity in Output
      4. Section 7.4.4: IMPORT: Importing DLL Symbols
      5. Section 7.4.5: EXPORT: Exporting DLL Symbols
      6. Section 7.4.6: ..start: Defining the Program Entry Point
      7. Section 7.4.7: obj Extensions to the EXTERN Directive
      8. Section 7.4.8: obj Extensions to the COMMON Directive
      9. Section 7.4.9: Embedded File Dependency Information
    5. Section 7.5: win32: Microsoft Win32 Object Files
      1. Section 7.5.1: win32 Extensions to the SECTION Directive
      2. Section 7.5.2: win32: Safe Structured Exception Handling
      3. Section 7.5.3: Debugging formats for Windows
    6. Section 7.6: win64: Microsoft Win64 Object Files
      1. Section 7.6.1: win64: Writing Position-Independent Code
      2. Section 7.6.2: win64: Structured Exception Handling
    7. Section 7.7: coff: Common Object File Format
    8. Section 7.8: macho32 and macho64: Mach Object File Format
      1. Section 7.8.1: macho extensions to the SECTION Directive
      2. Section 7.8.2: Thread Local Storage in Mach-O: macho special symbols and WRT
      3. Section 7.8.3: macho specfic directive subsections_via_symbols
      4. Section 7.8.4: macho specfic directive no_dead_strip
    9. Section 7.9: elf32, elf64, elfx32: Executable and Linkable Format Object Files
      1. Section 7.9.1: ELF specific directive osabi
      2. Section 7.9.2: elf extensions to the SECTION Directive
      3. Section 7.9.3: Position-Independent Code: macho Special Symbols and WRT
      4. Section 7.9.4: Thread Local Storage in ELF: elf Special Symbols and WRT
      5. Section 7.9.5: elf Extensions to the GLOBAL Directive
      6. Section 7.9.6: elf Extensions to the COMMON Directive
      7. Section 7.9.7: 16-bit code and ELF
      8. Section 7.9.8: Debug formats and ELF
    10. Section 7.10: aout: Linux a.out Object Files
    11. Section 7.11: aoutb: NetBSD/FreeBSD/OpenBSD a.out Object Files
    12. Section 7.12: as86: Minix/Linux as86 Object Files
    13. Section 7.13: rdf: Relocatable Dynamic Object File Format
      1. Section 7.13.1: Requiring a Library: The LIBRARY Directive
      2. Section 7.13.2: Specifying a Module Name: The MODULE Directive
      3. Section 7.13.3: rdf Extensions to the GLOBAL Directive
      4. Section 7.13.4: rdf Extensions to the EXTERN Directive
    14. Section 7.14: dbg: Debugging Format
  8. Chapter 8: Writing 16-bit Code (DOS, Windows 3/3.1)
    1. Section 8.1: Producing .EXE Files
      1. Section 8.1.1: Using the obj Format To Generate .EXE Files
      2. Section 8.1.2: Using the bin Format To Generate .EXE Files
    2. Section 8.2: Producing .COM Files
      1. Section 8.2.1: Using the bin Format To Generate .COM Files
      2. Section 8.2.2: Using the obj Format To Generate .COM Files
    3. Section 8.3: Producing .SYS Files
    4. Section 8.4: Interfacing to 16-bit C Programs
      1. Section 8.4.1: External Symbol Names
      2. Section 8.4.2: Memory Models
      3. Section 8.4.3: Function Definitions and Function Calls
      4. Section 8.4.4: Accessing Data Items
      5. Section 8.4.5: c16.mac: Helper Macros for the 16-bit C Interface
    5. Section 8.5: Interfacing to Borland Pascal Programs
      1. Section 8.5.1: The Pascal Calling Convention
      2. Section 8.5.2: Borland Pascal Segment Name Restrictions
      3. Section 8.5.3: Using c16.mac With Pascal Programs
  9. Chapter 9: Writing 32-bit Code (Unix, Win32, DJGPP)
    1. Section 9.1: Interfacing to 32-bit C Programs
      1. Section 9.1.1: External Symbol Names
      2. Section 9.1.2: Function Definitions and Function Calls
      3. Section 9.1.3: Accessing Data Items
      4. Section 9.1.4: c32.mac: Helper Macros for the 32-bit C Interface
    2. Section 9.2: Writing NetBSD/FreeBSD/OpenBSD and Linux/ELF Shared Libraries
      1. Section 9.2.1: Obtaining the Address of the GOT
      2. Section 9.2.2: Finding Your Local Data Items
      3. Section 9.2.3: Finding External and Common Data Items
      4. Section 9.2.4: Exporting Symbols to the Library User
      5. Section 9.2.5: Calling Procedures Outside the Library
      6. Section 9.2.6: Generating the Library File
  10. Chapter 10: Mixing 16 and 32 Bit Code
    1. Section 10.1: Mixed-Size Jumps
    2. Section 10.2: Addressing Between Different-Size Segments
    3. Section 10.3: Other Mixed-Size Instructions
  11. Chapter 11: Writing 64-bit Code (Unix, Win64)
    1. Section 11.1: Register Names in 64-bit Mode
    2. Section 11.2: Immediates and Displacements in 64-bit Mode
    3. Section 11.3: Interfacing to 64-bit C Programs (Unix)
    4. Section 11.4: Interfacing to 64-bit C Programs (Win64)
  12. Chapter 12: Troubleshooting
    1. Section 12.1: Common Problems
      1. Section 12.1.1: NASM Generates Inefficient Code
      2. Section 12.1.2: My Jumps are Out of Range
      3. Section 12.1.3: ORG Doesn't Work
      4. Section 12.1.4: TIMES Doesn't Work
  13. Appendix A: Ndisasm
    1. Section A.1: Introduction
    2. Section A.2: Running NDISASM
      1. Section A.2.1: COM Files: Specifying an Origin
      2. Section A.2.2: Code Following Data: Synchronisation
      3. Section A.2.3: Mixed Code and Data: Automatic (Intelligent) Synchronisation
      4. Section A.2.4: Other Options
  14. Appendix B: Instruction List
    1. Section B.1: Introduction
      1. Section B.1.1: Special instructions...
      2. Section B.1.2: Conventional instructions
      3. Section B.1.3: Katmai Streaming SIMD instructions (SSE –– a.k.a. KNI, XMM, MMX2)
      4. Section B.1.4: Introduced in Deschutes but necessary for SSE support
      5. Section B.1.5: XSAVE group (AVX and extended state)
      6. Section B.1.6: Generic memory operations
      7. Section B.1.7: New MMX instructions introduced in Katmai
      8. Section B.1.8: AMD Enhanced 3DNow! (Athlon) instructions
      9. Section B.1.9: Willamette SSE2 Cacheability Instructions
      10. Section B.1.10: Willamette MMX instructions (SSE2 SIMD Integer Instructions)
      11. Section B.1.11: Willamette Streaming SIMD instructions (SSE2)
      12. Section B.1.12: Prescott New Instructions (SSE3)
      13. Section B.1.13: VMX/SVM Instructions
      14. Section B.1.14: Extended Page Tables VMX instructions
      15. Section B.1.15: Tejas New Instructions (SSSE3)
      16. Section B.1.16: AMD SSE4A
      17. Section B.1.17: New instructions in Barcelona
      18. Section B.1.18: Penryn New Instructions (SSE4.1)
      19. Section B.1.19: Nehalem New Instructions (SSE4.2)
      20. Section B.1.20: Intel SMX
      21. Section B.1.21: Geode (Cyrix) 3DNow! additions
      22. Section B.1.22: Intel new instructions in ???
      23. Section B.1.23: Intel AES instructions
      24. Section B.1.24: Intel AVX AES instructions
      25. Section B.1.25: Intel instruction extension based on pub number 319433-030 dated October 2017
      26. Section B.1.26: Intel AVX instructions
      27. Section B.1.27: Intel Carry-Less Multiplication instructions (CLMUL)
      28. Section B.1.28: Intel AVX Carry-Less Multiplication instructions (CLMUL)
      29. Section B.1.29: Intel Fused Multiply-Add instructions (FMA)
      30. Section B.1.30: Intel post-32 nm processor instructions
      31. Section B.1.31: VIA (Centaur) security instructions
      32. Section B.1.32: AMD Lightweight Profiling (LWP) instructions
      33. Section B.1.33: AMD XOP and FMA4 instructions (SSE5)
      34. Section B.1.34: Intel AVX2 instructions
      35. Section B.1.35: Intel Transactional Synchronization Extensions (TSX)
      36. Section B.1.36: Intel BMI1 and BMI2 instructions, AMD TBM instructions
      37. Section B.1.37: Intel Memory Protection Extensions (MPX)
      38. Section B.1.38: Intel SHA acceleration instructions
      39. Section B.1.39: AVX-512 mask register instructions
      40. Section B.1.40: AVX-512 instructions
      41. Section B.1.41: Intel memory protection keys for userspace (PKU aka PKEYs)
      42. Section B.1.42: Read Processor ID
      43. Section B.1.43: New memory instructions
      44. Section B.1.44: Systematic names for the hinting nop instructions
  15. Appendix C: NASM Version History
    1. Section C.1: NASM 2 Series
      1. Section C.1.1: Version 2.13.03
      2. Section C.1.2: Version 2.13.02
      3. Section C.1.3: Version 2.13.01
      4. Section C.1.4: Version 2.13
      5. Section C.1.5: Version 2.12.02
      6. Section C.1.6: Version 2.12.01
      7. Section C.1.7: Version 2.12
      8. Section C.1.8: Version 2.11.09
      9. Section C.1.9: Version 2.11.08
      10. Section C.1.10: Version 2.11.07
      11. Section C.1.11: Version 2.11.06
      12. Section C.1.12: Version 2.11.05
      13. Section C.1.13: Version 2.11.04
      14. Section C.1.14: Version 2.11.03
      15. Section C.1.15: Version 2.11.02
      16. Section C.1.16: Version 2.11.01
      17. Section C.1.17: Version 2.11
      18. Section C.1.18: Version 2.10.09
      19. Section C.1.19: Version 2.10.08
      20. Section C.1.20: Version 2.10.07
      21. Section C.1.21: Version 2.10.06
      22. Section C.1.22: Version 2.10.05
      23. Section C.1.23: Version 2.10.04
      24. Section C.1.24: Version 2.10.03
      25. Section C.1.25: Version 2.10.02
      26. Section C.1.26: Version 2.10.01
      27. Section C.1.27: Version 2.10
      28. Section C.1.28: Version 2.09.10
      29. Section C.1.29: Version 2.09.09
      30. Section C.1.30: Version 2.09.08
      31. Section C.1.31: Version 2.09.07
      32. Section C.1.32: Version 2.09.06
      33. Section C.1.33: Version 2.09.05
      34. Section C.1.34: Version 2.09.04
      35. Section C.1.35: Version 2.09.03
      36. Section C.1.36: Version 2.09.02
      37. Section C.1.37: Version 2.09.01
      38. Section C.1.38: Version 2.09
      39. Section C.1.39: Version 2.08.02
      40. Section C.1.40: Version 2.08.01
      41. Section C.1.41: Version 2.08
      42. Section C.1.42: Version 2.07
      43. Section C.1.43: Version 2.06
      44. Section C.1.44: Version 2.05.01
      45. Section C.1.45: Version 2.05
      46. Section C.1.46: Version 2.04
      47. Section C.1.47: Version 2.03.01
      48. Section C.1.48: Version 2.03
      49. Section C.1.49: Version 2.02
      50. Section C.1.50: Version 2.01
      51. Section C.1.51: Version 2.00
    2. Section C.2: NASM 0.98 Series
      1. Section C.2.1: Version 0.98.39
      2. Section C.2.2: Version 0.98.38
      3. Section C.2.3: Version 0.98.37
      4. Section C.2.4: Version 0.98.36
      5. Section C.2.5: Version 0.98.35
      6. Section C.2.6: Version 0.98.34
      7. Section C.2.7: Version 0.98.33
      8. Section C.2.8: Version 0.98.32
      9. Section C.2.9: Version 0.98.31
      10. Section C.2.10: Version 0.98.30
      11. Section C.2.11: Version 0.98.28
      12. Section C.2.12: Version 0.98.26
      13. Section C.2.13: Version 0.98.25alt
      14. Section C.2.14: Version 0.98.25
      15. Section C.2.15: Version 0.98.24p1
      16. Section C.2.16: Version 0.98.24
      17. Section C.2.17: Version 0.98.23
      18. Section C.2.18: Version 0.98.22
      19. Section C.2.19: Version 0.98.21
      20. Section C.2.20: Version 0.98.20
      21. Section C.2.21: Version 0.98.19
      22. Section C.2.22: Version 0.98.18
      23. Section C.2.23: Version 0.98.17
      24. Section C.2.24: Version 0.98.16
      25. Section C.2.25: Version 0.98.15
      26. Section C.2.26: Version 0.98.14
      27. Section C.2.27: Version 0.98.13
      28. Section C.2.28: Version 0.98.12
      29. Section C.2.29: Version 0.98.11
      30. Section C.2.30: Version 0.98.10
      31. Section C.2.31: Version 0.98.09
      32. Section C.2.32: Version 0.98.08
      33. Section C.2.33: Version 0.98.09b with John Coffman patches released 28-Oct-2001
      34. Section C.2.34: Version 0.98.07 released 01/28/01
      35. Section C.2.35: Version 0.98.06f released 01/18/01
      36. Section C.2.36: Version 0.98.06e released 01/09/01
      37. Section C.2.37: Version 0.98p1
      38. Section C.2.38: Version 0.98bf (bug-fixed)
      39. Section C.2.39: Version 0.98.03 with John Coffman's changes released 27-Jul-2000
      40. Section C.2.40: Version 0.98.03
      41. Section C.2.41: Version 0.98
      42. Section C.2.42: Version 0.98p9
      43. Section C.2.43: Version 0.98p8
      44. Section C.2.44: Version 0.98p7
      45. Section C.2.45: Version 0.98p6
      46. Section C.2.46: Version 0.98p3.7
      47. Section C.2.47: Version 0.98p3.6
      48. Section C.2.48: Version 0.98p3.5
      49. Section C.2.49: Version 0.98p3.4
      50. Section C.2.50: Version 0.98p3.3
      51. Section C.2.51: Version 0.98p3.2
      52. Section C.2.52: Version 0.98p3-hpa
      53. Section C.2.53: Version 0.98 pre-release 3
      54. Section C.2.54: Version 0.98 pre-release 2
      55. Section C.2.55: Version 0.98 pre-release 1
    3. Section C.3: NASM 0.9 Series
      1. Section C.3.1: Version 0.97 released December 1997
      2. Section C.3.2: Version 0.96 released November 1997
      3. Section C.3.3: Version 0.95 released July 1997
      4. Section C.3.4: Version 0.94 released April 1997
      5. Section C.3.5: Version 0.93 released January 1997
      6. Section C.3.6: Version 0.92 released January 1997
      7. Section C.3.7: Version 0.91 released November 1996
      8. Section C.3.8: Version 0.90 released October 1996
  16. Appendix D: Building NASM from Source
    1. Section D.1: Building from a Source Archive
    2. Section D.2: Building from the git Repository
  17. Appendix E: Contact Information
    1. Section E.1: Website
      1. Section E.1.1: User Forums
      2. Section E.1.2: Development Community
    2. Section E.2: Reporting Bugs