CINXE.COM
NASM - The Netwide Assembler
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8" /> <title>NASM - The Netwide Assembler</title> <link href="nasmdoc.css" rel="stylesheet" type="text/css" /> <link href="local.css" rel="stylesheet" type="text/css" /> </head> <body> <ul class="navbar"> <li><a class="next" href="nasmdoc1.html">Chapter 1</a></li> <li><a class="toc" href="nasmdoc0.html">Contents</a></li> <li class="last"><a class="index" href="nasmdoci.html">Index</a></li> </ul> <div class="title"> <h1>NASM - The Netwide Assembler</h1> <span class="subtitle">version 2.16.03</span> </div> <div class="contents" > <p>This manual documents NASM, the Netwide Assembler: an assembler targeting the Intel x86 series of processors, with portable source. </p><div class="toc"> <ol class="toc1"> <li class="toc1"> <span class="node">Chapter 1: </span><a href="nasmdoc1.html">Introduction</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 1.1: </span><a href="nasmdoc1.html#section-1.1">What Is NASM?</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 1.1.1: </span><a href="nasmdoc1.html#section-1.1.1">License</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 2: </span><a href="nasmdoc2.html">Running NASM</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 2.1: </span><a href="nasmdoc2.html#section-2.1">NASM Command-Line Syntax</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 2.1.1: </span><a href="nasmdoc2.html#section-2.1.1">The <code>-o</code> Option: Output File Name</a> </li> <li class="toc3"> <span class="node">Section 2.1.2: </span><a href="nasmdoc2.html#section-2.1.2">The <code>-f</code> Option: Output File Format</a> </li> <li class="toc3"> <span class="node">Section 2.1.3: </span><a href="nasmdoc2.html#section-2.1.3">The <code>-l</code> Option: Generating a Listing File</a> </li> <li class="toc3"> <span class="node">Section 2.1.4: </span><a href="nasmdoc2.html#section-2.1.4">The <code>-L</code> Option: Additional or Modified Listing Info</a> </li> <li class="toc3"> <span class="node">Section 2.1.5: </span><a href="nasmdoc2.html#section-2.1.5">The <code>-M</code> Option: Generate Makefile Dependencies</a> </li> <li class="toc3"> <span class="node">Section 2.1.6: </span><a href="nasmdoc2.html#section-2.1.6">The <code>-MG</code> Option: Generate Makefile Dependencies</a> </li> <li class="toc3"> <span class="node">Section 2.1.7: </span><a href="nasmdoc2.html#section-2.1.7">The <code>-MF</code> Option: Set Makefile Dependency File</a> </li> <li class="toc3"> <span class="node">Section 2.1.8: </span><a href="nasmdoc2.html#section-2.1.8">The <code>-MD</code> Option: Assemble and Generate Dependencies</a> </li> <li class="toc3"> <span class="node">Section 2.1.9: </span><a href="nasmdoc2.html#section-2.1.9">The <code>-MT</code> Option: Dependency Target Name</a> </li> <li class="toc3"> <span class="node">Section 2.1.10: </span><a href="nasmdoc2.html#section-2.1.10">The <code>-MQ</code> Option: Dependency Target Name (Quoted)</a> </li> <li class="toc3"> <span class="node">Section 2.1.11: </span><a href="nasmdoc2.html#section-2.1.11">The <code>-MP</code> Option: Emit Phony Makefile Targets</a> </li> <li class="toc3"> <span class="node">Section 2.1.12: </span><a href="nasmdoc2.html#section-2.1.12">The <code>-MW</code> Option: Watcom <code>make</code> quoting style</a> </li> <li class="toc3"> <span class="node">Section 2.1.13: </span><a href="nasmdoc2.html#section-2.1.13">The <code>-F</code> Option: Debug Information Format</a> </li> <li class="toc3"> <span class="node">Section 2.1.14: </span><a href="nasmdoc2.html#section-2.1.14">The <code>-g</code> Option: Enabling Debug Information.</a> </li> <li class="toc3"> <span class="node">Section 2.1.15: </span><a href="nasmdoc2.html#section-2.1.15">The <code>-X</code> Option: Selecting an Error Reporting Format</a> </li> <li class="toc3"> <span class="node">Section 2.1.16: </span><a href="nasmdoc2.html#section-2.1.16">The <code>-Z</code> Option: Send Errors to a File</a> </li> <li class="toc3"> <span class="node">Section 2.1.17: </span><a href="nasmdoc2.html#section-2.1.17">The <code>-s</code> Option: Send Errors to <code>stdout</code></a> </li> <li class="toc3"> <span class="node">Section 2.1.18: </span><a href="nasmdoc2.html#section-2.1.18">The <code>-i</code> Option: Include File Search Directories</a> </li> <li class="toc3"> <span class="node">Section 2.1.19: </span><a href="nasmdoc2.html#section-2.1.19">The <code>-p</code> Option: Pre-Include a File</a> </li> <li class="toc3"> <span class="node">Section 2.1.20: </span><a href="nasmdoc2.html#section-2.1.20">The <code>-d</code> Option: Pre-Define a Macro</a> </li> <li class="toc3"> <span class="node">Section 2.1.21: </span><a href="nasmdoc2.html#section-2.1.21">The <code>-u</code> Option: Undefine a Macro</a> </li> <li class="toc3"> <span class="node">Section 2.1.22: </span><a href="nasmdoc2.html#section-2.1.22">The <code>-E</code> Option: Preprocess Only</a> </li> <li class="toc3"> <span class="node">Section 2.1.23: </span><a href="nasmdoc2.html#section-2.1.23">The <code>-a</code> Option: Suppress Preprocessing</a> </li> <li class="toc3"> <span class="node">Section 2.1.24: </span><a href="nasmdoc2.html#section-2.1.24">The <code>-O</code> Option: Multipass Optimization</a> </li> <li class="toc3"> <span class="node">Section 2.1.25: </span><a href="nasmdoc2.html#section-2.1.25">The <code>-t</code> Option: TASM Compatibility Mode</a> </li> <li class="toc3"> <span class="node">Section 2.1.26: </span><a href="nasmdoc2.html#section-2.1.26">The <code>-w</code> and <code>-W</code> Options: Enable or Disable Assembly Warnings</a> </li> <li class="toc3"> <span class="node">Section 2.1.27: </span><a href="nasmdoc2.html#section-2.1.27">The <code>-v</code> Option: Display Version Info</a> </li> <li class="toc3"> <span class="node">Section 2.1.28: </span><a href="nasmdoc2.html#section-2.1.28">The <code>--(g|l)prefix</code>, <code>--(g|l)postfix</code> Options.</a> </li> <li class="toc3"> <span class="node">Section 2.1.29: </span><a href="nasmdoc2.html#section-2.1.29">The <code>--pragma</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.30: </span><a href="nasmdoc2.html#section-2.1.30">The <code>--before</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.31: </span><a href="nasmdoc2.html#section-2.1.31">The <code>--limit-X</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.32: </span><a href="nasmdoc2.html#section-2.1.32">The <code>--keep-all</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.33: </span><a href="nasmdoc2.html#section-2.1.33">The <code>--no-line</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.34: </span><a href="nasmdoc2.html#section-2.1.34">The <code>--reproducible</code> Option</a> </li> <li class="toc3"> <span class="node">Section 2.1.35: </span><a href="nasmdoc2.html#section-2.1.35">The <code>NASMENV</code> Environment Variable</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 2.2: </span><a href="nasmdoc2.html#section-2.2">Quick Start for MASM Users</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 2.2.1: </span><a href="nasmdoc2.html#section-2.2.1">NASM Is Case-Sensitive</a> </li> <li class="toc3"> <span class="node">Section 2.2.2: </span><a href="nasmdoc2.html#section-2.2.2">NASM Requires Square Brackets For Memory References</a> </li> <li class="toc3"> <span class="node">Section 2.2.3: </span><a href="nasmdoc2.html#section-2.2.3">NASM Doesn't Store Variable Types</a> </li> <li class="toc3"> <span class="node">Section 2.2.4: </span><a href="nasmdoc2.html#section-2.2.4">NASM Doesn't <code>ASSUME</code></a> </li> <li class="toc3"> <span class="node">Section 2.2.5: </span><a href="nasmdoc2.html#section-2.2.5">NASM Doesn't Support Memory Models</a> </li> <li class="toc3"> <span class="node">Section 2.2.6: </span><a href="nasmdoc2.html#section-2.2.6">Floating-Point Differences</a> </li> <li class="toc3"> <span class="node">Section 2.2.7: </span><a href="nasmdoc2.html#section-2.2.7">Other Differences</a> </li> <li class="toc3"> <span class="node">Section 2.2.8: </span><a href="nasmdoc2.html#section-2.2.8">MASM compatibility package</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 3: </span><a href="nasmdoc3.html">The NASM Language</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 3.1: </span><a href="nasmdoc3.html#section-3.1">Layout of a NASM Source Line</a> </li> <li class="toc2"> <span class="node">Section 3.2: </span><a href="nasmdoc3.html#section-3.2">Pseudo-Instructions</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 3.2.1: </span><a href="nasmdoc3.html#section-3.2.1"><code>D</code><em>x</em>: Declaring Initialized Data</a> </li> <li class="toc3"> <span class="node">Section 3.2.2: </span><a href="nasmdoc3.html#section-3.2.2"><code>RESB</code> and Friends: Declaring Uninitialized Data</a> </li> <li class="toc3"> <span class="node">Section 3.2.3: </span><a href="nasmdoc3.html#section-3.2.3"><code>INCBIN</code>: Including External Binary Files</a> </li> <li class="toc3"> <span class="node">Section 3.2.4: </span><a href="nasmdoc3.html#section-3.2.4"><code>EQU</code>: Defining Constants</a> </li> <li class="toc3"> <span class="node">Section 3.2.5: </span><a href="nasmdoc3.html#section-3.2.5"><code>TIMES</code>: Repeating Instructions or Data</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 3.3: </span><a href="nasmdoc3.html#section-3.3">Effective Addresses</a> </li> <li class="toc2"> <span class="node">Section 3.4: </span><a href="nasmdoc3.html#section-3.4">Constants</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 3.4.1: </span><a href="nasmdoc3.html#section-3.4.1">Numeric Constants</a> </li> <li class="toc3"> <span class="node">Section 3.4.2: </span><a href="nasmdoc3.html#section-3.4.2">Character Strings</a> </li> <li class="toc3"> <span class="node">Section 3.4.3: </span><a href="nasmdoc3.html#section-3.4.3">Character Constants</a> </li> <li class="toc3"> <span class="node">Section 3.4.4: </span><a href="nasmdoc3.html#section-3.4.4">String Constants</a> </li> <li class="toc3"> <span class="node">Section 3.4.5: </span><a href="nasmdoc3.html#section-3.4.5">Unicode Strings</a> </li> <li class="toc3"> <span class="node">Section 3.4.6: </span><a href="nasmdoc3.html#section-3.4.6">Floating-Point Constants</a> </li> <li class="toc3"> <span class="node">Section 3.4.7: </span><a href="nasmdoc3.html#section-3.4.7">Packed BCD Constants</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 3.5: </span><a href="nasmdoc3.html#section-3.5">Expressions</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 3.5.1: </span><a href="nasmdoc3.html#section-3.5.1"><code>?</code> ... <code>:</code>: Conditional Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.2: </span><a href="nasmdoc3.html#section-3.5.2">: <code>||</code>: Boolean OR Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.3: </span><a href="nasmdoc3.html#section-3.5.3">: <code>^^</code>: Boolean XOR Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.4: </span><a href="nasmdoc3.html#section-3.5.4">: <code>&&</code>: Boolean AND Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.5: </span><a href="nasmdoc3.html#section-3.5.5">: Comparison Operators</a> </li> <li class="toc3"> <span class="node">Section 3.5.6: </span><a href="nasmdoc3.html#section-3.5.6"><code>|</code>: Bitwise OR Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.7: </span><a href="nasmdoc3.html#section-3.5.7"><code>^</code>: Bitwise XOR Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.8: </span><a href="nasmdoc3.html#section-3.5.8"><code>&</code>: Bitwise AND Operator</a> </li> <li class="toc3"> <span class="node">Section 3.5.9: </span><a href="nasmdoc3.html#section-3.5.9">Bit Shift Operators</a> </li> <li class="toc3"> <span class="node">Section 3.5.10: </span><a href="nasmdoc3.html#section-3.5.10"><code>+</code> and <code>-</code>: Addition and Subtraction Operators</a> </li> <li class="toc3"> <span class="node">Section 3.5.11: </span><a href="nasmdoc3.html#section-3.5.11">Multiplication, Division and Modulo</a> </li> <li class="toc3"> <span class="node">Section 3.5.12: </span><a href="nasmdoc3.html#section-3.5.12">Unary Operators</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 3.6: </span><a href="nasmdoc3.html#section-3.6"><code>SEG</code> and <code>WRT</code></a> </li> <li class="toc2"> <span class="node">Section 3.7: </span><a href="nasmdoc3.html#section-3.7"><code>STRICT</code>: Inhibiting Optimization</a> </li> <li class="toc2"> <span class="node">Section 3.8: </span><a href="nasmdoc3.html#section-3.8">Critical Expressions</a> </li> <li class="toc2"> <span class="node">Section 3.9: </span><a href="nasmdoc3.html#section-3.9">Local Labels</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 4: </span><a href="nasmdoc4.html">The NASM Preprocessor</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 4.1: </span><a href="nasmdoc4.html#section-4.1">Preprocessor Expansions</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.1.1: </span><a href="nasmdoc4.html#section-4.1.1">Continuation Line Collapsing</a> </li> <li class="toc3"> <span class="node">Section 4.1.2: </span><a href="nasmdoc4.html#section-4.1.2">Comment Removal</a> </li> <li class="toc3"> <span class="node">Section 4.1.3: </span><a href="nasmdoc4.html#section-4.1.3"><code>%line</code> directives</a> </li> <li class="toc3"> <span class="node">Section 4.1.4: </span><a href="nasmdoc4.html#section-4.1.4"> Conditionals, Loops and Multi-Line Macro Definitions</a> </li> <li class="toc3"> <span class="node">Section 4.1.5: </span><a href="nasmdoc4.html#section-4.1.5">Directives processing</a> </li> <li class="toc3"> <span class="node">Section 4.1.6: </span><a href="nasmdoc4.html#section-4.1.6">Inline expansions and other directives</a> </li> <li class="toc3"> <span class="node">Section 4.1.7: </span><a href="nasmdoc4.html#section-4.1.7">Multi-Line Macro Expansion</a> </li> <li class="toc3"> <span class="node">Section 4.1.8: </span><a href="nasmdoc4.html#section-4.1.8">Detokenization</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.2: </span><a href="nasmdoc4.html#section-4.2">Single-Line Macros</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.2.1: </span><a href="nasmdoc4.html#section-4.2.1">The Normal Way: <code>%define</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.2: </span><a href="nasmdoc4.html#section-4.2.2">Resolving <code>%define</code>: <code>%xdefine</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.3: </span><a href="nasmdoc4.html#section-4.2.3">Macro Indirection: <code>%[...]</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.4: </span><a href="nasmdoc4.html#section-4.2.4">Concatenating Single Line Macro Tokens: <code>%+</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.5: </span><a href="nasmdoc4.html#section-4.2.5">The Macro Name Itself: <code>%?</code> and <code>%??</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.6: </span><a href="nasmdoc4.html#section-4.2.6">The Single-Line Macro Name: <code>%*?</code> and <code>%*??</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.7: </span><a href="nasmdoc4.html#section-4.2.7">Undefining Single-Line Macros: <code>%undef</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.8: </span><a href="nasmdoc4.html#section-4.2.8">Preprocessor Variables: <code>%assign</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.9: </span><a href="nasmdoc4.html#section-4.2.9">Defining Strings: <code>%defstr</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.10: </span><a href="nasmdoc4.html#section-4.2.10">Defining Tokens: <code>%deftok</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.11: </span><a href="nasmdoc4.html#section-4.2.11">Defining Aliases: <code>%defalias</code></a> </li> <li class="toc3"> <span class="node">Section 4.2.12: </span><a href="nasmdoc4.html#section-4.2.12">Conditional Comma Operator: <code>%,</code></a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.3: </span><a href="nasmdoc4.html#section-4.3">String Manipulation in Macros</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.3.1: </span><a href="nasmdoc4.html#section-4.3.1">Concatenating Strings: <code>%strcat</code></a> </li> <li class="toc3"> <span class="node">Section 4.3.2: </span><a href="nasmdoc4.html#section-4.3.2">String Length: <code>%strlen</code></a> </li> <li class="toc3"> <span class="node">Section 4.3.3: </span><a href="nasmdoc4.html#section-4.3.3">Extracting Substrings: <code>%substr</code></a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.4: </span><a href="nasmdoc4.html#section-4.4">Preprocessor Functions</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.4.1: </span><a href="nasmdoc4.html#section-4.4.1"><code>%abs()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.2: </span><a href="nasmdoc4.html#section-4.4.2"><code>%cond()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.3: </span><a href="nasmdoc4.html#section-4.4.3"><code>%count()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.4: </span><a href="nasmdoc4.html#section-4.4.4"><code>%eval()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.5: </span><a href="nasmdoc4.html#section-4.4.5"><code>%hex()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.6: </span><a href="nasmdoc4.html#section-4.4.6"><code>%is()</code> Family Functions</a> </li> <li class="toc3"> <span class="node">Section 4.4.7: </span><a href="nasmdoc4.html#section-4.4.7"><code>%map()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.8: </span><a href="nasmdoc4.html#section-4.4.8"><code>%num()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.9: </span><a href="nasmdoc4.html#section-4.4.9"><code>%sel()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.10: </span><a href="nasmdoc4.html#section-4.4.10"><code>%str()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.11: </span><a href="nasmdoc4.html#section-4.4.11"><code>%strcat()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.12: </span><a href="nasmdoc4.html#section-4.4.12"><code>%strlen()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.13: </span><a href="nasmdoc4.html#section-4.4.13"><code>%substr()</code> Function</a> </li> <li class="toc3"> <span class="node">Section 4.4.14: </span><a href="nasmdoc4.html#section-4.4.14"><code>%tok()</code> function</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.5: </span><a href="nasmdoc4.html#section-4.5">Multi-Line Macros: <code>%macro</code></a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.5.1: </span><a href="nasmdoc4.html#section-4.5.1">Overloading Multi-Line Macros</a> </li> <li class="toc3"> <span class="node">Section 4.5.2: </span><a href="nasmdoc4.html#section-4.5.2">Macro-Local Labels</a> </li> <li class="toc3"> <span class="node">Section 4.5.3: </span><a href="nasmdoc4.html#section-4.5.3">Greedy Macro Parameters</a> </li> <li class="toc3"> <span class="node">Section 4.5.4: </span><a href="nasmdoc4.html#section-4.5.4">Macro Parameters Range</a> </li> <li class="toc3"> <span class="node">Section 4.5.5: </span><a href="nasmdoc4.html#section-4.5.5">Default Macro Parameters</a> </li> <li class="toc3"> <span class="node">Section 4.5.6: </span><a href="nasmdoc4.html#section-4.5.6"><code>%0</code>: Macro Parameter Counter</a> </li> <li class="toc3"> <span class="node">Section 4.5.7: </span><a href="nasmdoc4.html#section-4.5.7"><code>%00</code>: Label Preceding Macro</a> </li> <li class="toc3"> <span class="node">Section 4.5.8: </span><a href="nasmdoc4.html#section-4.5.8"><code>%rotate</code>: Rotating Macro Parameters</a> </li> <li class="toc3"> <span class="node">Section 4.5.9: </span><a href="nasmdoc4.html#section-4.5.9">Concatenating Macro Parameters</a> </li> <li class="toc3"> <span class="node">Section 4.5.10: </span><a href="nasmdoc4.html#section-4.5.10">Condition Codes as Macro Parameters</a> </li> <li class="toc3"> <span class="node">Section 4.5.11: </span><a href="nasmdoc4.html#section-4.5.11">Disabling Listing Expansion</a> </li> <li class="toc3"> <span class="node">Section 4.5.12: </span><a href="nasmdoc4.html#section-4.5.12">Undefining Multi-Line Macros: <code>%unmacro</code></a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.6: </span><a href="nasmdoc4.html#section-4.6">Conditional Assembly</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.6.1: </span><a href="nasmdoc4.html#section-4.6.1"><code>%ifdef</code>: Testing Single-Line Macro Existence</a> </li> <li class="toc3"> <span class="node">Section 4.6.2: </span><a href="nasmdoc4.html#section-4.6.2"><code>%ifmacro</code>: Testing Multi-Line Macro Existence</a> </li> <li class="toc3"> <span class="node">Section 4.6.3: </span><a href="nasmdoc4.html#section-4.6.3"><code>%ifctx</code>: Testing the Context Stack</a> </li> <li class="toc3"> <span class="node">Section 4.6.4: </span><a href="nasmdoc4.html#section-4.6.4"><code>%if</code>: Testing Arbitrary Numeric Expressions</a> </li> <li class="toc3"> <span class="node">Section 4.6.5: </span><a href="nasmdoc4.html#section-4.6.5"><code>%ifidn</code> and <code>%ifidni</code>: Testing Exact Text Identity</a> </li> <li class="toc3"> <span class="node">Section 4.6.6: </span><a href="nasmdoc4.html#section-4.6.6"><code>%ifid</code>, <code>%ifnum</code>, <code>%ifstr</code>: Testing Token Types</a> </li> <li class="toc3"> <span class="node">Section 4.6.7: </span><a href="nasmdoc4.html#section-4.6.7"><code>%iftoken</code>: Test for a Single Token</a> </li> <li class="toc3"> <span class="node">Section 4.6.8: </span><a href="nasmdoc4.html#section-4.6.8"><code>%ifempty</code>: Test for Empty Expansion</a> </li> <li class="toc3"> <span class="node">Section 4.6.9: </span><a href="nasmdoc4.html#section-4.6.9"><code>%ifenv</code>: Test If Environment Variable Exists</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.7: </span><a href="nasmdoc4.html#section-4.7">Preprocessor Loops: <code>%rep</code></a> </li> <li class="toc2"> <span class="node">Section 4.8: </span><a href="nasmdoc4.html#section-4.8">Source Files and Dependencies</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.8.1: </span><a href="nasmdoc4.html#section-4.8.1"><code>%include</code>: Including Other Files</a> </li> <li class="toc3"> <span class="node">Section 4.8.2: </span><a href="nasmdoc4.html#section-4.8.2"><code>%pathsearch</code>: Search the Include Path</a> </li> <li class="toc3"> <span class="node">Section 4.8.3: </span><a href="nasmdoc4.html#section-4.8.3"><code>%depend</code>: Add Dependent Files</a> </li> <li class="toc3"> <span class="node">Section 4.8.4: </span><a href="nasmdoc4.html#section-4.8.4"><code>%use</code>: Include Standard Macro Package</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.9: </span><a href="nasmdoc4.html#section-4.9">The Context Stack</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.9.1: </span><a href="nasmdoc4.html#section-4.9.1"><code>%push</code> and <code>%pop</code>: Creating and Removing Contexts</a> </li> <li class="toc3"> <span class="node">Section 4.9.2: </span><a href="nasmdoc4.html#section-4.9.2">Context-Local Labels</a> </li> <li class="toc3"> <span class="node">Section 4.9.3: </span><a href="nasmdoc4.html#section-4.9.3">Context-Local Single-Line Macros</a> </li> <li class="toc3"> <span class="node">Section 4.9.4: </span><a href="nasmdoc4.html#section-4.9.4">Context Fall-Through Lookup <em>(deprecated)</em></a> </li> <li class="toc3"> <span class="node">Section 4.9.5: </span><a href="nasmdoc4.html#section-4.9.5"><code>%repl</code>: Renaming a Context</a> </li> <li class="toc3"> <span class="node">Section 4.9.6: </span><a href="nasmdoc4.html#section-4.9.6">Example Use of the Context Stack: Block IFs</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.10: </span><a href="nasmdoc4.html#section-4.10">Stack Relative Preprocessor Directives</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.10.1: </span><a href="nasmdoc4.html#section-4.10.1"><code>%arg</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 4.10.2: </span><a href="nasmdoc4.html#section-4.10.2"><code>%stacksize</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 4.10.3: </span><a href="nasmdoc4.html#section-4.10.3"><code>%local</code> Directive</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.11: </span><a href="nasmdoc4.html#section-4.11">Reporting User-Defined Errors: <code>%error</code>, <code>%warning</code>, <code>%fatal</code></a> </li> <li class="toc2"> <span class="node">Section 4.12: </span><a href="nasmdoc4.html#section-4.12"><code>%pragma</code>: Setting Options</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.12.1: </span><a href="nasmdoc4.html#section-4.12.1">Preprocessor Pragmas</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 4.13: </span><a href="nasmdoc4.html#section-4.13">Other Preprocessor Directives</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 4.13.1: </span><a href="nasmdoc4.html#section-4.13.1"><code>%line</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 4.13.2: </span><a href="nasmdoc4.html#section-4.13.2"><code>%!</code><em>variable</em>: Read an Environment Variable.</a> </li> <li class="toc3"> <span class="node">Section 4.13.3: </span><a href="nasmdoc4.html#section-4.13.3"><code>%clear</code>: Clear All Macro Definitions</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 5: </span><a href="nasmdoc5.html">Standard Macros</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 5.1: </span><a href="nasmdoc5.html#section-5.1">NASM Version Macros</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 5.1.1: </span><a href="nasmdoc5.html#section-5.1.1"><code>__?NASM_VERSION_ID?__</code>: NASM Version ID</a> </li> <li class="toc3"> <span class="node">Section 5.1.2: </span><a href="nasmdoc5.html#section-5.1.2"><code>__?NASM_VER?__</code>: NASM Version String</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 5.2: </span><a href="nasmdoc5.html#section-5.2"><code>__?FILE?__</code> and <code>__?LINE?__</code>: File Name and Line Number</a> </li> <li class="toc2"> <span class="node">Section 5.3: </span><a href="nasmdoc5.html#section-5.3"><code>__?BITS?__</code>: Current Code Generation Mode</a> </li> <li class="toc2"> <span class="node">Section 5.4: </span><a href="nasmdoc5.html#section-5.4"><code>__?OUTPUT_FORMAT?__</code>: Current Output Format</a> </li> <li class="toc2"> <span class="node">Section 5.5: </span><a href="nasmdoc5.html#section-5.5"><code>__?DEBUG_FORMAT?__</code>: Current Debug Format</a> </li> <li class="toc2"> <span class="node">Section 5.6: </span><a href="nasmdoc5.html#section-5.6">Assembly Date and Time Macros</a> </li> <li class="toc2"> <span class="node">Section 5.7: </span><a href="nasmdoc5.html#section-5.7"><code>__?USE_</code><em>package</em><code>?__</code>: Package Include Test</a> </li> <li class="toc2"> <span class="node">Section 5.8: </span><a href="nasmdoc5.html#section-5.8"><code>__?PASS?__</code>: Assembly Pass</a> </li> <li class="toc2"> <span class="node">Section 5.9: </span><a href="nasmdoc5.html#section-5.9">Structure Data Types</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 5.9.1: </span><a href="nasmdoc5.html#section-5.9.1"><code>STRUC</code> and <code>ENDSTRUC</code>: Declaring Structure Data Types</a> </li> <li class="toc3"> <span class="node">Section 5.9.2: </span><a href="nasmdoc5.html#section-5.9.2"><code>ISTRUC</code>, <code>AT</code> and <code>IEND</code>: Declaring Instances of Structures</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 5.10: </span><a href="nasmdoc5.html#section-5.10">Alignment Control</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 5.10.1: </span><a href="nasmdoc5.html#section-5.10.1"><code>ALIGN</code> and <code>ALIGNB</code>: Code and Data Alignment</a> </li> <li class="toc3"> <span class="node">Section 5.10.2: </span><a href="nasmdoc5.html#section-5.10.2"><code>SECTALIGN</code>: Section Alignment</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 6: </span><a href="nasmdoc6.html">Standard Macro Packages</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 6.1: </span><a href="nasmdoc6.html#section-6.1"><code>altreg</code>: Alternate Register Names</a> </li> <li class="toc2"> <span class="node">Section 6.2: </span><a href="nasmdoc6.html#section-6.2"><code>smartalign</code>: Smart <code>ALIGN</code> Macro</a> </li> <li class="toc2"> <span class="node">Section 6.3: </span><a href="nasmdoc6.html#section-6.3"><code>fp</code>: Floating-point macros</a> </li> <li class="toc2"> <span class="node">Section 6.4: </span><a href="nasmdoc6.html#section-6.4"><code>ifunc</code>: Integer functions</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 6.4.1: </span><a href="nasmdoc6.html#section-6.4.1">Integer logarithms</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 6.5: </span><a href="nasmdoc6.html#section-6.5"><code>masm</code>: MASM compatibility</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 7: </span><a href="nasmdoc7.html">Assembler Directives</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 7.1: </span><a href="nasmdoc7.html#section-7.1"><code>BITS</code>: Target Processor Mode</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 7.1.1: </span><a href="nasmdoc7.html#section-7.1.1"><code>USE16</code> & <code>USE32</code>: Aliases for BITS</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 7.2: </span><a href="nasmdoc7.html#section-7.2"><code>DEFAULT</code>: Change the assembler defaults</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 7.2.1: </span><a href="nasmdoc7.html#section-7.2.1"><code>REL</code> & <code>ABS</code>: RIP-relative addressing</a> </li> <li class="toc3"> <span class="node">Section 7.2.2: </span><a href="nasmdoc7.html#section-7.2.2"><code>BND</code> & <code>NOBND</code>: <code>BND</code> prefix</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 7.3: </span><a href="nasmdoc7.html#section-7.3"><code>SECTION</code> or <code>SEGMENT</code>: Changing and Defining Sections</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 7.3.1: </span><a href="nasmdoc7.html#section-7.3.1">The <code>__?SECT?__</code> Macro</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 7.4: </span><a href="nasmdoc7.html#section-7.4"><code>ABSOLUTE</code>: Defining Absolute Labels</a> </li> <li class="toc2"> <span class="node">Section 7.5: </span><a href="nasmdoc7.html#section-7.5"><code>EXTERN</code>: Importing Symbols from Other Modules</a> </li> <li class="toc2"> <span class="node">Section 7.6: </span><a href="nasmdoc7.html#section-7.6"><code>REQUIRED</code>: Unconditionally Importing Symbols from Other Modules</a> </li> <li class="toc2"> <span class="node">Section 7.7: </span><a href="nasmdoc7.html#section-7.7"><code>GLOBAL</code>: Exporting Symbols to Other Modules</a> </li> <li class="toc2"> <span class="node">Section 7.8: </span><a href="nasmdoc7.html#section-7.8"><code>COMMON</code>: Defining Common Data Areas</a> </li> <li class="toc2"> <span class="node">Section 7.9: </span><a href="nasmdoc7.html#section-7.9"><code>STATIC</code>: Local Symbols within Modules</a> </li> <li class="toc2"> <span class="node">Section 7.10: </span><a href="nasmdoc7.html#section-7.10"><code>(G|L)PREFIX</code>, <code>(G|L)POSTFIX</code>: Mangling Symbols</a> </li> <li class="toc2"> <span class="node">Section 7.11: </span><a href="nasmdoc7.html#section-7.11"><code>CPU</code>: Defining CPU Dependencies</a> </li> <li class="toc2"> <span class="node">Section 7.12: </span><a href="nasmdoc7.html#section-7.12"><code>FLOAT</code>: Handling of floating-point constants</a> </li> <li class="toc2"> <span class="node">Section 7.13: </span><a href="nasmdoc7.html#section-7.13"><code>[WARNING]</code>: Enable or disable warnings</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 8: </span><a href="nasmdoc8.html">Output Formats</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 8.1: </span><a href="nasmdoc8.html#section-8.1"><code>bin</code>: Flat-Form Binary Output</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.1.1: </span><a href="nasmdoc8.html#section-8.1.1"><code>ORG</code>: Binary File Program Origin</a> </li> <li class="toc3"> <span class="node">Section 8.1.2: </span><a href="nasmdoc8.html#section-8.1.2"><code>bin</code> Extensions to the <code>SECTION</code> Directive, <code>bin</code> extensions to}</a> </li> <li class="toc3"> <span class="node">Section 8.1.3: </span><a href="nasmdoc8.html#section-8.1.3">Multisection Support for the <code>bin</code> Format</a> </li> <li class="toc3"> <span class="node">Section 8.1.4: </span><a href="nasmdoc8.html#section-8.1.4">Map Files</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.2: </span><a href="nasmdoc8.html#section-8.2"><code>ith</code>: Intel Hex Output</a> </li> <li class="toc2"> <span class="node">Section 8.3: </span><a href="nasmdoc8.html#section-8.3"><code>srec</code>: Motorola S-Records Output</a> </li> <li class="toc2"> <span class="node">Section 8.4: </span><a href="nasmdoc8.html#section-8.4"><code>obj</code>: Microsoft OMF Object Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.4.1: </span><a href="nasmdoc8.html#section-8.4.1"><code>obj</code> Extensions to the <code>SEGMENT</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.4.2: </span><a href="nasmdoc8.html#section-8.4.2"><code>GROUP</code>: Defining Groups of Segments</a> </li> <li class="toc3"> <span class="node">Section 8.4.3: </span><a href="nasmdoc8.html#section-8.4.3"><code>UPPERCASE</code>: Disabling Case Sensitivity in Output</a> </li> <li class="toc3"> <span class="node">Section 8.4.4: </span><a href="nasmdoc8.html#section-8.4.4"><code>IMPORT</code>: Importing DLL Symbols</a> </li> <li class="toc3"> <span class="node">Section 8.4.5: </span><a href="nasmdoc8.html#section-8.4.5"><code>EXPORT</code>: Exporting DLL Symbols</a> </li> <li class="toc3"> <span class="node">Section 8.4.6: </span><a href="nasmdoc8.html#section-8.4.6"><code>..start</code>: Defining the Program Entry Point</a> </li> <li class="toc3"> <span class="node">Section 8.4.7: </span><a href="nasmdoc8.html#section-8.4.7"><code>obj</code> Extensions to the <code>EXTERN</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.4.8: </span><a href="nasmdoc8.html#section-8.4.8"><code>obj</code> Extensions to the <code>COMMON</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.4.9: </span><a href="nasmdoc8.html#section-8.4.9">Embedded File Dependency Information</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.5: </span><a href="nasmdoc8.html#section-8.5"><code>win32</code>: Microsoft Win32 Object Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.5.1: </span><a href="nasmdoc8.html#section-8.5.1"><code>win32</code> Extensions to the <code>SECTION</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.5.2: </span><a href="nasmdoc8.html#section-8.5.2"><code>win32</code>: Safe Structured Exception Handling</a> </li> <li class="toc3"> <span class="node">Section 8.5.3: </span><a href="nasmdoc8.html#section-8.5.3">Debugging formats for Windows </a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.6: </span><a href="nasmdoc8.html#section-8.6"><code>win64</code>: Microsoft Win64 Object Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.6.1: </span><a href="nasmdoc8.html#section-8.6.1"><code>win64</code>: Writing Position-Independent Code</a> </li> <li class="toc3"> <span class="node">Section 8.6.2: </span><a href="nasmdoc8.html#section-8.6.2"><code>win64</code>: Structured Exception Handling</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.7: </span><a href="nasmdoc8.html#section-8.7"><code>coff</code>: Common Object File Format</a> </li> <li class="toc2"> <span class="node">Section 8.8: </span><a href="nasmdoc8.html#section-8.8"><code>macho32</code> and <code>macho64</code>: Mach Object File Format</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.8.1: </span><a href="nasmdoc8.html#section-8.8.1"><code>macho</code> extensions to the <code>SECTION</code> Directive </a> </li> <li class="toc3"> <span class="node">Section 8.8.2: </span><a href="nasmdoc8.html#section-8.8.2">Thread Local Storage in Mach-O: <code>macho</code> special symbols and <code>WRT</code></a> </li> <li class="toc3"> <span class="node">Section 8.8.3: </span><a href="nasmdoc8.html#section-8.8.3"><code>macho</code> specific directive <code>subsections_via_symbols</code></a> </li> <li class="toc3"> <span class="node">Section 8.8.4: </span><a href="nasmdoc8.html#section-8.8.4"><code>macho</code> specific directive <code>no_dead_strip</code></a> </li> <li class="toc3"> <span class="node">Section 8.8.5: </span><a href="nasmdoc8.html#section-8.8.5"><code>macho</code> specific extensions to the <code>GLOBAL</code> Directive: <code>private_extern</code></a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.9: </span><a href="nasmdoc8.html#section-8.9"><code>elf32</code>, <code>elf64</code>, <code>elfx32</code>: Executable and Linkable Format Object Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 8.9.1: </span><a href="nasmdoc8.html#section-8.9.1">ELF specific directive <code>osabi</code></a> </li> <li class="toc3"> <span class="node">Section 8.9.2: </span><a href="nasmdoc8.html#section-8.9.2">ELF extensions to the <code>SECTION</code> Directive </a> </li> <li class="toc3"> <span class="node">Section 8.9.3: </span><a href="nasmdoc8.html#section-8.9.3">Position-Independent Code: ELF Special Symbols and <code>WRT</code></a> </li> <li class="toc3"> <span class="node">Section 8.9.4: </span><a href="nasmdoc8.html#section-8.9.4">Thread Local Storage in ELF: <code>elf</code> Special Symbols and <code>WRT</code></a> </li> <li class="toc3"> <span class="node">Section 8.9.5: </span><a href="nasmdoc8.html#section-8.9.5"><code>elf</code> Extensions to the <code>GLOBAL</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.9.6: </span><a href="nasmdoc8.html#section-8.9.6"><code>elf</code> Extensions to the <code>EXTERN</code> Directive</a> </li> <li class="toc3"> <span class="node">Section 8.9.7: </span><a href="nasmdoc8.html#section-8.9.7"><code>elf</code> Extensions to the <code>COMMON</code> Directive </a> </li> <li class="toc3"> <span class="node">Section 8.9.8: </span><a href="nasmdoc8.html#section-8.9.8">16-bit code and ELF </a> </li> <li class="toc3"> <span class="node">Section 8.9.9: </span><a href="nasmdoc8.html#section-8.9.9">Debug formats and ELF </a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 8.10: </span><a href="nasmdoc8.html#section-8.10"><code>aout</code>: Linux <code>a.out</code> Object Files</a> </li> <li class="toc2"> <span class="node">Section 8.11: </span><a href="nasmdoc8.html#section-8.11"><code>aoutb</code>: NetBSD/FreeBSD/OpenBSD <code>a.out</code> Object Files</a> </li> <li class="toc2"> <span class="node">Section 8.12: </span><a href="nasmdoc8.html#section-8.12"><code>as86</code>: Minix/Linux <code>as86</code> Object Files</a> </li> <li class="toc2"> <span class="node">Section 8.13: </span><a href="nasmdoc8.html#section-8.13"><code>dbg</code>: Debugging Format</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 9: </span><a href="nasmdoc9.html">Writing 16-bit Code (DOS, Windows 3/3.1)</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 9.1: </span><a href="nasmdoc9.html#section-9.1">Producing <code>.EXE</code> Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 9.1.1: </span><a href="nasmdoc9.html#section-9.1.1">Using the <code>obj</code> Format To Generate <code>.EXE</code> Files</a> </li> <li class="toc3"> <span class="node">Section 9.1.2: </span><a href="nasmdoc9.html#section-9.1.2">Using the <code>bin</code> Format To Generate <code>.EXE</code> Files</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 9.2: </span><a href="nasmdoc9.html#section-9.2">Producing <code>.COM</code> Files</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 9.2.1: </span><a href="nasmdoc9.html#section-9.2.1">Using the <code>bin</code> Format To Generate <code>.COM</code> Files</a> </li> <li class="toc3"> <span class="node">Section 9.2.2: </span><a href="nasmdoc9.html#section-9.2.2">Using the <code>obj</code> Format To Generate <code>.COM</code> Files</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 9.3: </span><a href="nasmdoc9.html#section-9.3">Producing <code>.SYS</code> Files</a> </li> <li class="toc2"> <span class="node">Section 9.4: </span><a href="nasmdoc9.html#section-9.4">Interfacing to 16-bit C Programs</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 9.4.1: </span><a href="nasmdoc9.html#section-9.4.1">External Symbol Names</a> </li> <li class="toc3"> <span class="node">Section 9.4.2: </span><a href="nasmdoc9.html#section-9.4.2">Memory Models</a> </li> <li class="toc3"> <span class="node">Section 9.4.3: </span><a href="nasmdoc9.html#section-9.4.3">Function Definitions and Function Calls</a> </li> <li class="toc3"> <span class="node">Section 9.4.4: </span><a href="nasmdoc9.html#section-9.4.4">Accessing Data Items</a> </li> <li class="toc3"> <span class="node">Section 9.4.5: </span><a href="nasmdoc9.html#section-9.4.5"><code>c16.mac</code>: Helper Macros for the 16-bit C Interface</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 9.5: </span><a href="nasmdoc9.html#section-9.5">Interfacing to Borland Pascal Programs</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 9.5.1: </span><a href="nasmdoc9.html#section-9.5.1">The Pascal Calling Convention</a> </li> <li class="toc3"> <span class="node">Section 9.5.2: </span><a href="nasmdoc9.html#section-9.5.2">Borland Pascal Segment Name Restrictions</a> </li> <li class="toc3"> <span class="node">Section 9.5.3: </span><a href="nasmdoc9.html#section-9.5.3">Using <code>c16.mac</code> With Pascal Programs</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 10: </span><a href="nasmdo10.html">Writing 32-bit Code (Unix, Win32, DJGPP)</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 10.1: </span><a href="nasmdo10.html#section-10.1">Interfacing to 32-bit C Programs</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 10.1.1: </span><a href="nasmdo10.html#section-10.1.1">External Symbol Names</a> </li> <li class="toc3"> <span class="node">Section 10.1.2: </span><a href="nasmdo10.html#section-10.1.2">Function Definitions and Function Calls</a> </li> <li class="toc3"> <span class="node">Section 10.1.3: </span><a href="nasmdo10.html#section-10.1.3">Accessing Data Items</a> </li> <li class="toc3"> <span class="node">Section 10.1.4: </span><a href="nasmdo10.html#section-10.1.4"><code>c32.mac</code>: Helper Macros for the 32-bit C Interface</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section 10.2: </span><a href="nasmdo10.html#section-10.2">Writing NetBSD/FreeBSD/OpenBSD and Linux/ELF Shared Libraries</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 10.2.1: </span><a href="nasmdo10.html#section-10.2.1">Obtaining the Address of the GOT</a> </li> <li class="toc3"> <span class="node">Section 10.2.2: </span><a href="nasmdo10.html#section-10.2.2">Finding Your Local Data Items</a> </li> <li class="toc3"> <span class="node">Section 10.2.3: </span><a href="nasmdo10.html#section-10.2.3">Finding External and Common Data Items</a> </li> <li class="toc3"> <span class="node">Section 10.2.4: </span><a href="nasmdo10.html#section-10.2.4">Exporting Symbols to the Library User</a> </li> <li class="toc3"> <span class="node">Section 10.2.5: </span><a href="nasmdo10.html#section-10.2.5">Calling Procedures Outside the Library</a> </li> <li class="toc3"> <span class="node">Section 10.2.6: </span><a href="nasmdo10.html#section-10.2.6">Generating the Library File</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 11: </span><a href="nasmdo11.html">Mixing 16- and 32-bit Code</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 11.1: </span><a href="nasmdo11.html#section-11.1">Mixed-Size Jumps</a> </li> <li class="toc2"> <span class="node">Section 11.2: </span><a href="nasmdo11.html#section-11.2">Addressing Between Different-Size Segments</a> </li> <li class="toc2"> <span class="node">Section 11.3: </span><a href="nasmdo11.html#section-11.3">Other Mixed-Size Instructions</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 12: </span><a href="nasmdo12.html">Writing 64-bit Code (Unix, Win64)</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 12.1: </span><a href="nasmdo12.html#section-12.1">Register Names in 64-bit Mode</a> </li> <li class="toc2"> <span class="node">Section 12.2: </span><a href="nasmdo12.html#section-12.2">Immediates and Displacements in 64-bit Mode</a> </li> <li class="toc2"> <span class="node">Section 12.3: </span><a href="nasmdo12.html#section-12.3">Interfacing to 64-bit C Programs (Unix)</a> </li> <li class="toc2"> <span class="node">Section 12.4: </span><a href="nasmdo12.html#section-12.4">Interfacing to 64-bit C Programs (Win64)</a> </li> </ol> </li> <li class="toc1"> <span class="node">Chapter 13: </span><a href="nasmdo13.html">Troubleshooting</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section 13.1: </span><a href="nasmdo13.html#section-13.1">Common Problems</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section 13.1.1: </span><a href="nasmdo13.html#section-13.1.1">NASM Generates Inefficient Code</a> </li> <li class="toc3"> <span class="node">Section 13.1.2: </span><a href="nasmdo13.html#section-13.1.2">My Jumps are Out of Range</a> </li> <li class="toc3"> <span class="node">Section 13.1.3: </span><a href="nasmdo13.html#section-13.1.3"><code>ORG</code> Doesn't Work</a> </li> <li class="toc3"> <span class="node">Section 13.1.4: </span><a href="nasmdo13.html#section-13.1.4"><code>TIMES</code> Doesn't Work</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Appendix A: </span><a href="nasmdoca.html">List of Warning Classes</a> </li> <li class="toc1"> <span class="node">Appendix B: </span><a href="nasmdocb.html">Ndisasm</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section B.1: </span><a href="nasmdocb.html#section-B.1">Introduction</a> </li> <li class="toc2"> <span class="node">Section B.2: </span><a href="nasmdocb.html#section-B.2">Running NDISASM</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section B.2.1: </span><a href="nasmdocb.html#section-B.2.1">Specifying the Input Origin</a> </li> <li class="toc3"> <span class="node">Section B.2.2: </span><a href="nasmdocb.html#section-B.2.2">Code Following Data: Synchronization</a> </li> <li class="toc3"> <span class="node">Section B.2.3: </span><a href="nasmdocb.html#section-B.2.3">Mixed Code and Data: Automatic (Intelligent) Synchronization </a> </li> <li class="toc3"> <span class="node">Section B.2.4: </span><a href="nasmdocb.html#section-B.2.4">Other Options</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Appendix C: </span><a href="nasmdocc.html">NASM Version History</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section C.1: </span><a href="nasmdocc.html#section-C.1">NASM 2 Series</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section C.1.1: </span><a href="nasmdocc.html#section-C.1.1">Version 2.16.03</a> </li> <li class="toc3"> <span class="node">Section C.1.2: </span><a href="nasmdocc.html#section-C.1.2">Version 2.16.02</a> </li> <li class="toc3"> <span class="node">Section C.1.3: </span><a href="nasmdocc.html#section-C.1.3">Version 2.16.01</a> </li> <li class="toc3"> <span class="node">Section C.1.4: </span><a href="nasmdocc.html#section-C.1.4">Version 2.16</a> </li> <li class="toc3"> <span class="node">Section C.1.5: </span><a href="nasmdocc.html#section-C.1.5">Version 2.15.05</a> </li> <li class="toc3"> <span class="node">Section C.1.6: </span><a href="nasmdocc.html#section-C.1.6">Version 2.15.04</a> </li> <li class="toc3"> <span class="node">Section C.1.7: </span><a href="nasmdocc.html#section-C.1.7">Version 2.15.03</a> </li> <li class="toc3"> <span class="node">Section C.1.8: </span><a href="nasmdocc.html#section-C.1.8">Version 2.15.02</a> </li> <li class="toc3"> <span class="node">Section C.1.9: </span><a href="nasmdocc.html#section-C.1.9">Version 2.15.01</a> </li> <li class="toc3"> <span class="node">Section C.1.10: </span><a href="nasmdocc.html#section-C.1.10">Version 2.15</a> </li> <li class="toc3"> <span class="node">Section C.1.11: </span><a href="nasmdocc.html#section-C.1.11">Version 2.14.03</a> </li> <li class="toc3"> <span class="node">Section C.1.12: </span><a href="nasmdocc.html#section-C.1.12">Version 2.14.02</a> </li> <li class="toc3"> <span class="node">Section C.1.13: </span><a href="nasmdocc.html#section-C.1.13">Version 2.14.01</a> </li> <li class="toc3"> <span class="node">Section C.1.14: </span><a href="nasmdocc.html#section-C.1.14">Version 2.14</a> </li> <li class="toc3"> <span class="node">Section C.1.15: </span><a href="nasmdocc.html#section-C.1.15">Version 2.13.03</a> </li> <li class="toc3"> <span class="node">Section C.1.16: </span><a href="nasmdocc.html#section-C.1.16">Version 2.13.02</a> </li> <li class="toc3"> <span class="node">Section C.1.17: </span><a href="nasmdocc.html#section-C.1.17">Version 2.13.01</a> </li> <li class="toc3"> <span class="node">Section C.1.18: </span><a href="nasmdocc.html#section-C.1.18">Version 2.13</a> </li> <li class="toc3"> <span class="node">Section C.1.19: </span><a href="nasmdocc.html#section-C.1.19">Version 2.12.02</a> </li> <li class="toc3"> <span class="node">Section C.1.20: </span><a href="nasmdocc.html#section-C.1.20">Version 2.12.01</a> </li> <li class="toc3"> <span class="node">Section C.1.21: </span><a href="nasmdocc.html#section-C.1.21">Version 2.12</a> </li> <li class="toc3"> <span class="node">Section C.1.22: </span><a href="nasmdocc.html#section-C.1.22">Version 2.11.09</a> </li> <li class="toc3"> <span class="node">Section C.1.23: </span><a href="nasmdocc.html#section-C.1.23">Version 2.11.08</a> </li> <li class="toc3"> <span class="node">Section C.1.24: </span><a href="nasmdocc.html#section-C.1.24">Version 2.11.07</a> </li> <li class="toc3"> <span class="node">Section C.1.25: </span><a href="nasmdocc.html#section-C.1.25">Version 2.11.06</a> </li> <li class="toc3"> <span class="node">Section C.1.26: </span><a href="nasmdocc.html#section-C.1.26">Version 2.11.05</a> </li> <li class="toc3"> <span class="node">Section C.1.27: </span><a href="nasmdocc.html#section-C.1.27">Version 2.11.04</a> </li> <li class="toc3"> <span class="node">Section C.1.28: </span><a href="nasmdocc.html#section-C.1.28">Version 2.11.03</a> </li> <li class="toc3"> <span class="node">Section C.1.29: </span><a href="nasmdocc.html#section-C.1.29">Version 2.11.02</a> </li> <li class="toc3"> <span class="node">Section C.1.30: </span><a href="nasmdocc.html#section-C.1.30">Version 2.11.01</a> </li> <li class="toc3"> <span class="node">Section C.1.31: </span><a href="nasmdocc.html#section-C.1.31">Version 2.11</a> </li> <li class="toc3"> <span class="node">Section C.1.32: </span><a href="nasmdocc.html#section-C.1.32">Version 2.10.09</a> </li> <li class="toc3"> <span class="node">Section C.1.33: </span><a href="nasmdocc.html#section-C.1.33">Version 2.10.08</a> </li> <li class="toc3"> <span class="node">Section C.1.34: </span><a href="nasmdocc.html#section-C.1.34">Version 2.10.07</a> </li> <li class="toc3"> <span class="node">Section C.1.35: </span><a href="nasmdocc.html#section-C.1.35">Version 2.10.06</a> </li> <li class="toc3"> <span class="node">Section C.1.36: </span><a href="nasmdocc.html#section-C.1.36">Version 2.10.05</a> </li> <li class="toc3"> <span class="node">Section C.1.37: </span><a href="nasmdocc.html#section-C.1.37">Version 2.10.04</a> </li> <li class="toc3"> <span class="node">Section C.1.38: </span><a href="nasmdocc.html#section-C.1.38">Version 2.10.03</a> </li> <li class="toc3"> <span class="node">Section C.1.39: </span><a href="nasmdocc.html#section-C.1.39">Version 2.10.02</a> </li> <li class="toc3"> <span class="node">Section C.1.40: </span><a href="nasmdocc.html#section-C.1.40">Version 2.10.01</a> </li> <li class="toc3"> <span class="node">Section C.1.41: </span><a href="nasmdocc.html#section-C.1.41">Version 2.10</a> </li> <li class="toc3"> <span class="node">Section C.1.42: </span><a href="nasmdocc.html#section-C.1.42">Version 2.09.10</a> </li> <li class="toc3"> <span class="node">Section C.1.43: </span><a href="nasmdocc.html#section-C.1.43">Version 2.09.09</a> </li> <li class="toc3"> <span class="node">Section C.1.44: </span><a href="nasmdocc.html#section-C.1.44">Version 2.09.08</a> </li> <li class="toc3"> <span class="node">Section C.1.45: </span><a href="nasmdocc.html#section-C.1.45">Version 2.09.07</a> </li> <li class="toc3"> <span class="node">Section C.1.46: </span><a href="nasmdocc.html#section-C.1.46">Version 2.09.06</a> </li> <li class="toc3"> <span class="node">Section C.1.47: </span><a href="nasmdocc.html#section-C.1.47">Version 2.09.05</a> </li> <li class="toc3"> <span class="node">Section C.1.48: </span><a href="nasmdocc.html#section-C.1.48">Version 2.09.04</a> </li> <li class="toc3"> <span class="node">Section C.1.49: </span><a href="nasmdocc.html#section-C.1.49">Version 2.09.03</a> </li> <li class="toc3"> <span class="node">Section C.1.50: </span><a href="nasmdocc.html#section-C.1.50">Version 2.09.02</a> </li> <li class="toc3"> <span class="node">Section C.1.51: </span><a href="nasmdocc.html#section-C.1.51">Version 2.09.01</a> </li> <li class="toc3"> <span class="node">Section C.1.52: </span><a href="nasmdocc.html#section-C.1.52">Version 2.09</a> </li> <li class="toc3"> <span class="node">Section C.1.53: </span><a href="nasmdocc.html#section-C.1.53">Version 2.08.02</a> </li> <li class="toc3"> <span class="node">Section C.1.54: </span><a href="nasmdocc.html#section-C.1.54">Version 2.08.01</a> </li> <li class="toc3"> <span class="node">Section C.1.55: </span><a href="nasmdocc.html#section-C.1.55">Version 2.08</a> </li> <li class="toc3"> <span class="node">Section C.1.56: </span><a href="nasmdocc.html#section-C.1.56">Version 2.07</a> </li> <li class="toc3"> <span class="node">Section C.1.57: </span><a href="nasmdocc.html#section-C.1.57">Version 2.06</a> </li> <li class="toc3"> <span class="node">Section C.1.58: </span><a href="nasmdocc.html#section-C.1.58">Version 2.05.01</a> </li> <li class="toc3"> <span class="node">Section C.1.59: </span><a href="nasmdocc.html#section-C.1.59">Version 2.05</a> </li> <li class="toc3"> <span class="node">Section C.1.60: </span><a href="nasmdocc.html#section-C.1.60">Version 2.04</a> </li> <li class="toc3"> <span class="node">Section C.1.61: </span><a href="nasmdocc.html#section-C.1.61">Version 2.03.01</a> </li> <li class="toc3"> <span class="node">Section C.1.62: </span><a href="nasmdocc.html#section-C.1.62">Version 2.03</a> </li> <li class="toc3"> <span class="node">Section C.1.63: </span><a href="nasmdocc.html#section-C.1.63">Version 2.02</a> </li> <li class="toc3"> <span class="node">Section C.1.64: </span><a href="nasmdocc.html#section-C.1.64">Version 2.01</a> </li> <li class="toc3"> <span class="node">Section C.1.65: </span><a href="nasmdocc.html#section-C.1.65">Version 2.00</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section C.2: </span><a href="nasmdocc.html#section-C.2">NASM 0.98 Series</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section C.2.1: </span><a href="nasmdocc.html#section-C.2.1">Version 0.98.39</a> </li> <li class="toc3"> <span class="node">Section C.2.2: </span><a href="nasmdocc.html#section-C.2.2">Version 0.98.38</a> </li> <li class="toc3"> <span class="node">Section C.2.3: </span><a href="nasmdocc.html#section-C.2.3">Version 0.98.37</a> </li> <li class="toc3"> <span class="node">Section C.2.4: </span><a href="nasmdocc.html#section-C.2.4">Version 0.98.36</a> </li> <li class="toc3"> <span class="node">Section C.2.5: </span><a href="nasmdocc.html#section-C.2.5">Version 0.98.35</a> </li> <li class="toc3"> <span class="node">Section C.2.6: </span><a href="nasmdocc.html#section-C.2.6">Version 0.98.34</a> </li> <li class="toc3"> <span class="node">Section C.2.7: </span><a href="nasmdocc.html#section-C.2.7">Version 0.98.33</a> </li> <li class="toc3"> <span class="node">Section C.2.8: </span><a href="nasmdocc.html#section-C.2.8">Version 0.98.32</a> </li> <li class="toc3"> <span class="node">Section C.2.9: </span><a href="nasmdocc.html#section-C.2.9">Version 0.98.31</a> </li> <li class="toc3"> <span class="node">Section C.2.10: </span><a href="nasmdocc.html#section-C.2.10">Version 0.98.30</a> </li> <li class="toc3"> <span class="node">Section C.2.11: </span><a href="nasmdocc.html#section-C.2.11">Version 0.98.28</a> </li> <li class="toc3"> <span class="node">Section C.2.12: </span><a href="nasmdocc.html#section-C.2.12">Version 0.98.26</a> </li> <li class="toc3"> <span class="node">Section C.2.13: </span><a href="nasmdocc.html#section-C.2.13">Version 0.98.25alt</a> </li> <li class="toc3"> <span class="node">Section C.2.14: </span><a href="nasmdocc.html#section-C.2.14">Version 0.98.25</a> </li> <li class="toc3"> <span class="node">Section C.2.15: </span><a href="nasmdocc.html#section-C.2.15">Version 0.98.24p1</a> </li> <li class="toc3"> <span class="node">Section C.2.16: </span><a href="nasmdocc.html#section-C.2.16">Version 0.98.24</a> </li> <li class="toc3"> <span class="node">Section C.2.17: </span><a href="nasmdocc.html#section-C.2.17">Version 0.98.23</a> </li> <li class="toc3"> <span class="node">Section C.2.18: </span><a href="nasmdocc.html#section-C.2.18">Version 0.98.22</a> </li> <li class="toc3"> <span class="node">Section C.2.19: </span><a href="nasmdocc.html#section-C.2.19">Version 0.98.21</a> </li> <li class="toc3"> <span class="node">Section C.2.20: </span><a href="nasmdocc.html#section-C.2.20">Version 0.98.20</a> </li> <li class="toc3"> <span class="node">Section C.2.21: </span><a href="nasmdocc.html#section-C.2.21">Version 0.98.19</a> </li> <li class="toc3"> <span class="node">Section C.2.22: </span><a href="nasmdocc.html#section-C.2.22">Version 0.98.18</a> </li> <li class="toc3"> <span class="node">Section C.2.23: </span><a href="nasmdocc.html#section-C.2.23">Version 0.98.17</a> </li> <li class="toc3"> <span class="node">Section C.2.24: </span><a href="nasmdocc.html#section-C.2.24">Version 0.98.16</a> </li> <li class="toc3"> <span class="node">Section C.2.25: </span><a href="nasmdocc.html#section-C.2.25">Version 0.98.15</a> </li> <li class="toc3"> <span class="node">Section C.2.26: </span><a href="nasmdocc.html#section-C.2.26">Version 0.98.14</a> </li> <li class="toc3"> <span class="node">Section C.2.27: </span><a href="nasmdocc.html#section-C.2.27">Version 0.98.13</a> </li> <li class="toc3"> <span class="node">Section C.2.28: </span><a href="nasmdocc.html#section-C.2.28">Version 0.98.12</a> </li> <li class="toc3"> <span class="node">Section C.2.29: </span><a href="nasmdocc.html#section-C.2.29">Version 0.98.11</a> </li> <li class="toc3"> <span class="node">Section C.2.30: </span><a href="nasmdocc.html#section-C.2.30">Version 0.98.10</a> </li> <li class="toc3"> <span class="node">Section C.2.31: </span><a href="nasmdocc.html#section-C.2.31">Version 0.98.09</a> </li> <li class="toc3"> <span class="node">Section C.2.32: </span><a href="nasmdocc.html#section-C.2.32">Version 0.98.08</a> </li> <li class="toc3"> <span class="node">Section C.2.33: </span><a href="nasmdocc.html#section-C.2.33">Version 0.98.09b with John Coffman patches released 28-Oct-2001</a> </li> <li class="toc3"> <span class="node">Section C.2.34: </span><a href="nasmdocc.html#section-C.2.34">Version 0.98.07 released 01/28/01</a> </li> <li class="toc3"> <span class="node">Section C.2.35: </span><a href="nasmdocc.html#section-C.2.35">Version 0.98.06f released 01/18/01</a> </li> <li class="toc3"> <span class="node">Section C.2.36: </span><a href="nasmdocc.html#section-C.2.36">Version 0.98.06e released 01/09/01</a> </li> <li class="toc3"> <span class="node">Section C.2.37: </span><a href="nasmdocc.html#section-C.2.37">Version 0.98p1</a> </li> <li class="toc3"> <span class="node">Section C.2.38: </span><a href="nasmdocc.html#section-C.2.38">Version 0.98bf (bug-fixed)</a> </li> <li class="toc3"> <span class="node">Section C.2.39: </span><a href="nasmdocc.html#section-C.2.39">Version 0.98.03 with John Coffman's changes released 27-Jul-2000</a> </li> <li class="toc3"> <span class="node">Section C.2.40: </span><a href="nasmdocc.html#section-C.2.40">Version 0.98.03</a> </li> <li class="toc3"> <span class="node">Section C.2.41: </span><a href="nasmdocc.html#section-C.2.41">Version 0.98</a> </li> <li class="toc3"> <span class="node">Section C.2.42: </span><a href="nasmdocc.html#section-C.2.42">Version 0.98p9</a> </li> <li class="toc3"> <span class="node">Section C.2.43: </span><a href="nasmdocc.html#section-C.2.43">Version 0.98p8</a> </li> <li class="toc3"> <span class="node">Section C.2.44: </span><a href="nasmdocc.html#section-C.2.44">Version 0.98p7</a> </li> <li class="toc3"> <span class="node">Section C.2.45: </span><a href="nasmdocc.html#section-C.2.45">Version 0.98p6</a> </li> <li class="toc3"> <span class="node">Section C.2.46: </span><a href="nasmdocc.html#section-C.2.46">Version 0.98p3.7</a> </li> <li class="toc3"> <span class="node">Section C.2.47: </span><a href="nasmdocc.html#section-C.2.47">Version 0.98p3.6</a> </li> <li class="toc3"> <span class="node">Section C.2.48: </span><a href="nasmdocc.html#section-C.2.48">Version 0.98p3.5</a> </li> <li class="toc3"> <span class="node">Section C.2.49: </span><a href="nasmdocc.html#section-C.2.49">Version 0.98p3.4</a> </li> <li class="toc3"> <span class="node">Section C.2.50: </span><a href="nasmdocc.html#section-C.2.50">Version 0.98p3.3</a> </li> <li class="toc3"> <span class="node">Section C.2.51: </span><a href="nasmdocc.html#section-C.2.51">Version 0.98p3.2</a> </li> <li class="toc3"> <span class="node">Section C.2.52: </span><a href="nasmdocc.html#section-C.2.52">Version 0.98p3-hpa</a> </li> <li class="toc3"> <span class="node">Section C.2.53: </span><a href="nasmdocc.html#section-C.2.53">Version 0.98 pre-release 3</a> </li> <li class="toc3"> <span class="node">Section C.2.54: </span><a href="nasmdocc.html#section-C.2.54">Version 0.98 pre-release 2</a> </li> <li class="toc3"> <span class="node">Section C.2.55: </span><a href="nasmdocc.html#section-C.2.55">Version 0.98 pre-release 1</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section C.3: </span><a href="nasmdocc.html#section-C.3">NASM 0.9 Series</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section C.3.1: </span><a href="nasmdocc.html#section-C.3.1">Version 0.97 released December 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.2: </span><a href="nasmdocc.html#section-C.3.2">Version 0.96 released November 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.3: </span><a href="nasmdocc.html#section-C.3.3">Version 0.95 released July 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.4: </span><a href="nasmdocc.html#section-C.3.4">Version 0.94 released April 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.5: </span><a href="nasmdocc.html#section-C.3.5">Version 0.93 released January 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.6: </span><a href="nasmdocc.html#section-C.3.6">Version 0.92 released January 1997</a> </li> <li class="toc3"> <span class="node">Section C.3.7: </span><a href="nasmdocc.html#section-C.3.7">Version 0.91 released November 1996</a> </li> <li class="toc3"> <span class="node">Section C.3.8: </span><a href="nasmdocc.html#section-C.3.8">Version 0.90 released October 1996</a> </li> </ol> </li> </ol> </li> <li class="toc1"> <span class="node">Appendix D: </span><a href="nasmdocd.html">Building NASM from Source</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section D.1: </span><a href="nasmdocd.html#section-D.1">Building from a Source Archive</a> </li> <li class="toc2"> <span class="node">Section D.2: </span><a href="nasmdocd.html#section-D.2">Building from the <code>git</code> Repository</a> </li> <li class="toc2"> <span class="node">Section D.3: </span><a href="nasmdocd.html#section-D.3">Building the documentation</a> </li> </ol> </li> <li class="toc1"> <span class="node">Appendix E: </span><a href="nasmdoce.html">Contact Information</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section E.1: </span><a href="nasmdoce.html#section-E.1">Website</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section E.1.1: </span><a href="nasmdoce.html#section-E.1.1">User Forums</a> </li> <li class="toc3"> <span class="node">Section E.1.2: </span><a href="nasmdoce.html#section-E.1.2">Development Community</a> </li> </ol> </li> <li class="toc2"> <span class="node">Section E.2: </span><a href="nasmdoce.html#section-E.2">Reporting Bugs</a> </li> </ol> </li> <li class="toc1"> <span class="node">Appendix F: </span><a href="nasmdocf.html">Instruction List</a> <ol class="toc2"> <li class="toc2"> <span class="node">Section F.1: </span><a href="nasmdocf.html#section-F.1">Introduction</a> <ol class="toc3"> <li class="toc3"> <span class="node">Section F.1.1: </span><a href="nasmdocf.html#section-F.1.1">Special instructions (pseudo-ops)</a> </li> <li class="toc3"> <span class="node">Section F.1.2: </span><a href="nasmdocf.html#section-F.1.2">Conventional instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.3: </span><a href="nasmdocf.html#section-F.1.3">Katmai Streaming SIMD instructions (SSE –– a.k.a. KNI, XMM, MMX2)</a> </li> <li class="toc3"> <span class="node">Section F.1.4: </span><a href="nasmdocf.html#section-F.1.4">Introduced in Deschutes but necessary for SSE support</a> </li> <li class="toc3"> <span class="node">Section F.1.5: </span><a href="nasmdocf.html#section-F.1.5">XSAVE group (AVX and extended state)</a> </li> <li class="toc3"> <span class="node">Section F.1.6: </span><a href="nasmdocf.html#section-F.1.6">Generic memory operations</a> </li> <li class="toc3"> <span class="node">Section F.1.7: </span><a href="nasmdocf.html#section-F.1.7">New MMX instructions introduced in Katmai</a> </li> <li class="toc3"> <span class="node">Section F.1.8: </span><a href="nasmdocf.html#section-F.1.8">AMD Enhanced 3DNow! (Athlon) instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.9: </span><a href="nasmdocf.html#section-F.1.9">Willamette SSE2 Cacheability Instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.10: </span><a href="nasmdocf.html#section-F.1.10">Willamette MMX instructions (SSE2 SIMD Integer Instructions)</a> </li> <li class="toc3"> <span class="node">Section F.1.11: </span><a href="nasmdocf.html#section-F.1.11">Willamette Streaming SIMD instructions (SSE2)</a> </li> <li class="toc3"> <span class="node">Section F.1.12: </span><a href="nasmdocf.html#section-F.1.12">Prescott New Instructions (SSE3)</a> </li> <li class="toc3"> <span class="node">Section F.1.13: </span><a href="nasmdocf.html#section-F.1.13">VMX/SVM Instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.14: </span><a href="nasmdocf.html#section-F.1.14">Extended Page Tables VMX instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.15: </span><a href="nasmdocf.html#section-F.1.15">SEV-SNP AMD instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.16: </span><a href="nasmdocf.html#section-F.1.16">Tejas New Instructions (SSSE3)</a> </li> <li class="toc3"> <span class="node">Section F.1.17: </span><a href="nasmdocf.html#section-F.1.17">AMD SSE4A</a> </li> <li class="toc3"> <span class="node">Section F.1.18: </span><a href="nasmdocf.html#section-F.1.18">New instructions in Barcelona</a> </li> <li class="toc3"> <span class="node">Section F.1.19: </span><a href="nasmdocf.html#section-F.1.19">Penryn New Instructions (SSE4.1)</a> </li> <li class="toc3"> <span class="node">Section F.1.20: </span><a href="nasmdocf.html#section-F.1.20">Nehalem New Instructions (SSE4.2)</a> </li> <li class="toc3"> <span class="node">Section F.1.21: </span><a href="nasmdocf.html#section-F.1.21">Intel SMX</a> </li> <li class="toc3"> <span class="node">Section F.1.22: </span><a href="nasmdocf.html#section-F.1.22">Geode (Cyrix) 3DNow! additions</a> </li> <li class="toc3"> <span class="node">Section F.1.23: </span><a href="nasmdocf.html#section-F.1.23">Intel new instructions in ???</a> </li> <li class="toc3"> <span class="node">Section F.1.24: </span><a href="nasmdocf.html#section-F.1.24">Intel AES instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.25: </span><a href="nasmdocf.html#section-F.1.25">Intel AVX AES instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.26: </span><a href="nasmdocf.html#section-F.1.26">Intel instruction extension based on pub number 319433-030 dated October 2017</a> </li> <li class="toc3"> <span class="node">Section F.1.27: </span><a href="nasmdocf.html#section-F.1.27">Intel AVX instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.28: </span><a href="nasmdocf.html#section-F.1.28">Intel Carry-Less Multiplication instructions (CLMUL)</a> </li> <li class="toc3"> <span class="node">Section F.1.29: </span><a href="nasmdocf.html#section-F.1.29">Intel AVX Carry-Less Multiplication instructions (CLMUL)</a> </li> <li class="toc3"> <span class="node">Section F.1.30: </span><a href="nasmdocf.html#section-F.1.30">Intel Fused Multiply-Add instructions (FMA)</a> </li> <li class="toc3"> <span class="node">Section F.1.31: </span><a href="nasmdocf.html#section-F.1.31">Intel post-32 nm processor instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.32: </span><a href="nasmdocf.html#section-F.1.32">Supervisor Mode Access Prevention (SMAP)</a> </li> <li class="toc3"> <span class="node">Section F.1.33: </span><a href="nasmdocf.html#section-F.1.33">VIA (Centaur) security instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.34: </span><a href="nasmdocf.html#section-F.1.34">AMD Lightweight Profiling (LWP) instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.35: </span><a href="nasmdocf.html#section-F.1.35">AMD XOP and FMA4 instructions (SSE5)</a> </li> <li class="toc3"> <span class="node">Section F.1.36: </span><a href="nasmdocf.html#section-F.1.36">Intel AVX2 instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.37: </span><a href="nasmdocf.html#section-F.1.37">Intel Transactional Synchronization Extensions (TSX)</a> </li> <li class="toc3"> <span class="node">Section F.1.38: </span><a href="nasmdocf.html#section-F.1.38">Intel BMI1 and BMI2 instructions, AMD TBM instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.39: </span><a href="nasmdocf.html#section-F.1.39">Intel Memory Protection Extensions (MPX)</a> </li> <li class="toc3"> <span class="node">Section F.1.40: </span><a href="nasmdocf.html#section-F.1.40">Intel SHA acceleration instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.41: </span><a href="nasmdocf.html#section-F.1.41">SM3</a> </li> <li class="toc3"> <span class="node">Section F.1.42: </span><a href="nasmdocf.html#section-F.1.42">SM4</a> </li> <li class="toc3"> <span class="node">Section F.1.43: </span><a href="nasmdocf.html#section-F.1.43">AVX no exception conversions</a> </li> <li class="toc3"> <span class="node">Section F.1.44: </span><a href="nasmdocf.html#section-F.1.44">AVX Vector Neural Network Instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.45: </span><a href="nasmdocf.html#section-F.1.45">AVX Integer Fused Multiply-Add</a> </li> <li class="toc3"> <span class="node">Section F.1.46: </span><a href="nasmdocf.html#section-F.1.46">AVX-512 mask register instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.47: </span><a href="nasmdocf.html#section-F.1.47">AVX-512 mask register instructions (aliases requiring explicit size support)</a> </li> <li class="toc3"> <span class="node">Section F.1.48: </span><a href="nasmdocf.html#section-F.1.48">AVX-512 instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.49: </span><a href="nasmdocf.html#section-F.1.49">Intel memory protection keys for userspace (PKU aka PKEYs)</a> </li> <li class="toc3"> <span class="node">Section F.1.50: </span><a href="nasmdocf.html#section-F.1.50">Read Processor ID</a> </li> <li class="toc3"> <span class="node">Section F.1.51: </span><a href="nasmdocf.html#section-F.1.51">New memory instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.52: </span><a href="nasmdocf.html#section-F.1.52">Processor trace write</a> </li> <li class="toc3"> <span class="node">Section F.1.53: </span><a href="nasmdocf.html#section-F.1.53">Instructions from the Intel Instruction Set Extensions,</a> </li> <li class="toc3"> <span class="node">Section F.1.54: </span><a href="nasmdocf.html#section-F.1.54">doc 319433-034 May 2018</a> </li> <li class="toc3"> <span class="node">Section F.1.55: </span><a href="nasmdocf.html#section-F.1.55">Galois field operations (GFNI)</a> </li> <li class="toc3"> <span class="node">Section F.1.56: </span><a href="nasmdocf.html#section-F.1.56">AVX512 Vector Bit Manipulation Instructions 2</a> </li> <li class="toc3"> <span class="node">Section F.1.57: </span><a href="nasmdocf.html#section-F.1.57">AVX512 VNNI</a> </li> <li class="toc3"> <span class="node">Section F.1.58: </span><a href="nasmdocf.html#section-F.1.58">AVX512 Bit Algorithms</a> </li> <li class="toc3"> <span class="node">Section F.1.59: </span><a href="nasmdocf.html#section-F.1.59">AVX512 4-iteration Multiply-Add</a> </li> <li class="toc3"> <span class="node">Section F.1.60: </span><a href="nasmdocf.html#section-F.1.60">AVX512 4-iteration Dot Product</a> </li> <li class="toc3"> <span class="node">Section F.1.61: </span><a href="nasmdocf.html#section-F.1.61">Intel Software Guard Extensions (SGX)</a> </li> <li class="toc3"> <span class="node">Section F.1.62: </span><a href="nasmdocf.html#section-F.1.62">Intel Control-Flow Enforcement Technology (CET)</a> </li> <li class="toc3"> <span class="node">Section F.1.63: </span><a href="nasmdocf.html#section-F.1.63">Instructions from ISE doc 319433-040, June 2020</a> </li> <li class="toc3"> <span class="node">Section F.1.64: </span><a href="nasmdocf.html#section-F.1.64">AVX512 Bfloat16 instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.65: </span><a href="nasmdocf.html#section-F.1.65">AVX512 mask intersect instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.66: </span><a href="nasmdocf.html#section-F.1.66">Intel Advanced Matrix Extensions (AMX)</a> </li> <li class="toc3"> <span class="node">Section F.1.67: </span><a href="nasmdocf.html#section-F.1.67">Intel AVX512-FP16 instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.68: </span><a href="nasmdocf.html#section-F.1.68">RAO-INT weakly ordered atomic operations</a> </li> <li class="toc3"> <span class="node">Section F.1.69: </span><a href="nasmdocf.html#section-F.1.69">User interrupts</a> </li> <li class="toc3"> <span class="node">Section F.1.70: </span><a href="nasmdocf.html#section-F.1.70">Compare, exchange and add conditional</a> </li> <li class="toc3"> <span class="node">Section F.1.71: </span><a href="nasmdocf.html#section-F.1.71">Flexible Return and Exception Delivery</a> </li> <li class="toc3"> <span class="node">Section F.1.72: </span><a href="nasmdocf.html#section-F.1.72">WRMSRNS and MSRLIST instructions</a> </li> <li class="toc3"> <span class="node">Section F.1.73: </span><a href="nasmdocf.html#section-F.1.73">History reset</a> </li> <li class="toc3"> <span class="node">Section F.1.74: </span><a href="nasmdocf.html#section-F.1.74">Systematic names for the hinting nop instructions</a> </li> </ol> </li> </ol> </li> </ol> </div> </body> </html>