NASM Manual

# The Netwide Assembler: NASM

Contents

`!` operator, unary: Section 3.5.7
`!=` operator: Section 4.4.4
`$$` token: Section 3.5, Section 7.9.3
`$`, Here token: Section 3.5
`$`, prefix: Section 3.1, Section 3.4.1, Section 7.13.2
`%` operator: Section 3.5.6
`%!`: Section 4.10.2
`%$` and `%$$` prefixes: Section 4.7.2
`%%` operator: Section 3.5.6, Section 4.3.2
`%+`: Section 4.1.4
`%?`: Section 4.1.5
`%??`: Section 4.1.5
`%[`: Section 4.1.3
`&` operator: Section 3.5.3
`&&` operator: Section 4.4.4
`*` operator: Section 3.5.6
`+` modifier: Section 4.3.3
`+` operator, binary: Section 3.5.5
`+` operator, unary: Section 3.5.7
`-` operator, binary: Section 3.5.5
`-` operator, unary: Section 3.5.7
`..@` symbol prefix: Section 3.9, Section 4.3.2
`/` operator: Section 3.5.6
`//` operator: Section 3.5.6
`<` operator: Section 4.4.4
`<<` operator: Section 3.5.4
`<=` operator: Section 4.4.4
`<>` operator: Section 4.4.4
`=` operator: Section 4.4.4
`==` operator: Section 4.4.4
`>` operator: Section 4.4.4
`>=` operator: Section 4.4.4
`>>` operator: Section 3.5.4
`?` MASM syntax: Section 3.2.2
`^` operator: Section 3.5.2
`^^` operator: Section 4.4.4
`|` operator: Section 3.5.1
`||` operator: Section 4.4.4
`~` operator: Section 3.5.7
`%0` parameter count: Section 4.3.5, Section 4.3.6
`%00`: Section 4.3.7
`%+1` and `%-1` syntax: Section 4.3.10
16-bit mode, versus 32-bit mode: Section 6.1
64-bit displacement: Section 11.2
64-bit immediate: Section 11.2
`-a` option: Section 2.1.21, Section A.3.3
`A16`: Section 3.1
`a16`: Section 10.3
`A32`: Section 3.1
`a32`: Section 10.3
`A64`: Section 3.1
`a64`: Section 10.3
`a86`: Section 1.1.1, Section 2.2, Section 2.2.2, Section 2.2.6
`ABS`: Section 3.3
`ABSOLUTE`: Section 6.4, Section 7.4.1
addition: Section 3.5.5
addressing, mixed-size: Section 10.2
address-size prefixes: Section 3.1
algebra: Section 3.3
`ALIGN`: Section 4.12.12, Section 5.2, Section 7.1.2, Section 7.4.1
`ALIGN`, smart: Section 5.2
`ALIGNB`: Section 4.12.12
alignment, in `bin` sections: Section 7.1.2
alignment, in `elf` sections: Section 7.9.2
alignment, in `obj` sections: Section 7.4.1
alignment, in `win32` sections: Section 7.5.1
alignment, of `elf` common variables: Section 7.9.6
`ALIGNMODE`: Section 5.2
`__ALIGNMODE__`: Section 5.2
`ALINK`: Section 8.1.1
`alink.sourceforge.net`: Section 8.1.1
`all`: Section 2.1.24
`alloc`: Section 7.9.2
alternate register names: Section 5.1
`alt.lang.asm`: Section 1.1.1
`altreg`: Section 5.1
ambiguity: Section 2.2.3
`a.out`, BSD version: Section 7.11
`a.out`, Linux version: Section 7.10
`aout`: Section 7.10
`aoutb`: Section 7.11, Section 9.2
`%arg`: Section 4.8.1
`arg`: Section 8.4.5, Section 9.1.4
`as86`: Section 1.1.1, Section 7.12
assembler directives: Chapter 6
assembly-time options: Section 2.1.18
`%assign`: Section 4.1.7
`ASSUME`: Section 2.2.4
`AT`: Section 4.12.11
Autoconf: Section 1.3.2
`autoexec.bat`: Section 1.3.1
`auto-sync`: Section A.3.3
`-b`: Section A.3
bin: Section 2.1.2, Section 7.1
bin, multisection: Section 7.1.3
binary: Section 3.4.1
binary files: Section 3.2.3
bit shift: Section 3.5.4
`BITS`: Section 6.1, Section 7.1
`__BITS__`: Section 4.12.5
bitwise AND: Section 3.5.3
bitwise OR: Section 3.5.1
bitwise XOR: Section 3.5.2
block IFs: Section 4.7.6
boot loader: Section 7.1
boot sector: Section 12.1.3
Borland, Pascal: Section 8.5
Borland, Win32 compilers: Section 7.4
braces, after `%` sign: Section 4.3.9
braces, around macro parameters: Section 4.3
BSD: Section 9.2
`.bss`: Section 7.9.2, Section 7.10, Section 7.11, Section 7.12, Section 7.13
bugs: Section 12.2
`bugtracker`: Section 12.2
`BYTE`: Section 12.1.1
C calling convention: Section 8.4.3, Section 9.1.2
C symbol names: Section 8.4.1
`c16.mac`: Section 8.4.5, Section 8.5.3
`c32.mac`: Section 9.1.4
`CALL FAR`: Section 3.6
case sensitivity: Section 2.2.1, Section 4.1.1, Section 4.1.2, Section 4.1.7, Section 4.3, Section 4.4.5, Section 7.4.3
changing sections: Section 6.3
character constant: Section 3.2.1, Section 3.4.3
character strings: Section 3.4.2
circular references: Section 4.1.1
`CLASS`: Section 7.4.1
`%clear`: Section 4.12
`coff`: Section 7.7
colon: Section 3.1
`.COM`: Section 7.1, Section 8.2
comma: Section 4.3.4
command-line: Section 2.1, Chapter 7
commas in macro parameters: Section 4.3.3
`%comment`: Section 4.11
`.comment`: Section 7.9.2
`COMMON`: Section 6.7, Section 7.4.1
`COMMON`, `elf` extensions to: Section 7.9.6
`COMMON`, `obj` extensions to: Section 7.4.8
Common Object File Format: Section 7.7
common variables: Section 6.7
common variables, alignment in `elf`: Section 7.9.6
common variables, element size: Section 7.4.8
`comp.lang.asm.x86`: Section 1.1.1, Section 1.2
`comp.os.msdos.programmer`: Section 8.3
concatenating macro parameters: Section 4.3.9
concatenating strings: Section 4.2.1
condition codes as macro parameters: Section 4.3.10
conditional assembly: Section 4.4
conditional jumps: Section 12.1.2
conditional-return macro: Section 4.3.10
`configure`: Section 1.3.2
constants: Section 3.4
context fall-through lookup: Section 4.7.4
context stack: Section 4.7, Section 4.7.6
context-local labels: Section 4.7.2
context-local single-line macros: Section 4.7.3
counting macro parameters: Section 4.3.6
`CPU`: Section 6.8
`CPUID`: Section 3.4.3
creating contexts: Section 4.7.1
critical expression: Section 3.2.2, Section 3.8, Section 4.1.7, Section 6.4
`-D` option: Section 2.1.18
`-d` option: Section 2.1.18
daily development snapshots: Section 1.2
`.data`: Section 7.9.2, Section 7.10, Section 7.11, Section 7.12, Section 7.13
`_DATA`: Section 8.4.2
`data`: Section 7.9.5, Section 7.13.3
data structure: Section 8.4.4, Section 9.1.3
`__DATE__`: Section 4.12.7
`__DATE_NUM__`: Section 4.12.7
`DB`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
`dbg`: Section 7.14
`DD`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
debug information: Section 2.1.12
debug information format: Section 2.1.11
decimal: Section 3.4.1
declaring structures: Section 4.12.10
`DEFAULT`: Section 6.2
`default`: Section 7.9.5
default macro parameters: Section 4.3.5
default name: Chapter 7
default-`WRT` mechanism: Section 7.4.7
`%define`: Section 2.1.18, Section 4.1.1
defining sections: Section 6.3
`%defstr`: Section 4.1.8
`%deftok`: Section 4.1.9
`%depend`: Section 4.6.3
design goals: Section 2.2.2
DevPac: Section 3.2.3, Section 3.9
disabling listing expansion: Section 4.3.11
division: Section 3.5.6
DJGPP: Section 7.7, Chapter 9
`djlink`: Section 8.1.1
DLL symbols, exporting: Section 7.4.5
DLL symbols, importing: Section 7.4.4
`DO`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
DOS: Section 1.3.1, Section 2.1.14, Section 2.1.15
DOS archive:
DOS source archive: Section 1.3.1
`DQ`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
`.drectve`: Section 7.5.1
`DT`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
`DUP`: Section 2.2.7, Section 3.2.5
`DW`: Section 3.2, Section 3.2.1, Section 3.4.4, Section 3.4.6
`DWORD`: Section 3.1
`DY`: Section 3.2, Section 3.2.1, Section 3.4.4
`-E` option: Section 2.1.20
`-e` option: Section 2.1.20, Section A.3.4
effective addresses: Section 3.1, Section 3.3
element size, in common variables: Section 7.4.8
ELF: Section 7.9
ELF, shared libraries: Section 7.9.3
ELF, 16-bit code and: Section 7.9.7
elf, debug formats and: Section 7.9.8
`elf32`: Section 7.9
`elf64`: Section 7.9
`elfx32`: Section 7.9
`%elif`: Section 4.4, Section 4.4.4
`%elifctx`: Section 4.4.3
`%elifdef`: Section 4.4.1
`%elifempty`: Section 4.4.8
`%elifenv`: Section 4.4.9
`%elifid`: Section 4.4.6
`%elifidn`: Section 4.4.5
`%elifidni`: Section 4.4.5
`%elifmacro`: Section 4.4.2
`%elifn`: Section 4.4, Section 4.4.4
`%elifnctx`: Section 4.4.3
`%elifndef`: Section 4.4.1
`%elifnempty`: Section 4.4.8
`%elifnenv`: Section 4.4.9
`%elifnid`: Section 4.4.6
`%elifnidn`: Section 4.4.5
`%elifnidni`: Section 4.4.5
`%elifnmacro`: Section 4.4.2
`%elifnnum`: Section 4.4.6
`%elifnstr`: Section 4.4.6
`%elifntoken`: Section 4.4.7
`%elifnum`: Section 4.4.6
`%elifstr`: Section 4.4.6
`%eliftoken`: Section 4.4.7
`%else`: Section 4.4
`endproc`: Section 8.4.5, Section 9.1.4
`%endrep`: Section 4.5
`ENDSTRUC`: Section 4.12.10, Section 6.4
environment: Section 2.1.28
`EQU`: Section 3.2, Section 3.2.4
`%error`: Section 4.9
`error`: Section 2.1.24
error messages: Section 2.1.14, Section 2.1.15
error reporting format: Section 2.1.13
escape sequences: Section 3.4.2
`EVEN`: Section 4.12.12
exact matches: Section 4.3.12
`.EXE`: Section 7.4, Section 8.1
`EXE2BIN`: Section 8.2.2
`EXE_begin`: Section 8.1.2
`exebin.mac`: Section 8.1.2
`exec`: Section 7.9.2
Executable and Linkable Format: Section 7.9
`EXE_end`: Section 8.1.2
`EXE_stack`: Section 8.1.2
`%exitrep`: Section 4.5
`EXPORT`: Section 7.4.5
`export`: Section 7.13.3
exporting symbols: Section 6.6
expressions: Section 2.1.20, Section 3.5
extension: Section 2.1.1, Chapter 7
`EXTERN`: Section 6.5
`EXTERN`, `obj` extensions to: Section 7.4.7
`EXTERN`, `rdf` extensions to: Section 7.13.4
extracting substrings: Section 4.2.3
`-F` option: Section 2.1.11
`-f` option: Section 2.1.2, Chapter 7
far call: Section 2.2.5
far common variables: Section 7.4.8
far pointer: Section 3.6
`FARCODE`: Section 8.4.5, Section 8.5.3
`%fatal`: Section 4.9
`__FILE__`: Section 4.12.4
`FLAT`: Section 7.4.1
flat memory model: Chapter 9
flat-form binary: Section 7.1
`FLOAT`: Section 6.9
`__FLOAT__`: Section 6.9
`__float128h__`: Section 3.4.6
`__float128l__`: Section 3.4.6
`__float16__`: Section 3.4.6
`__float32__`: Section 3.4.6
`__float64__`: Section 3.4.6
`__float8__`: Section 3.4.6
`__float80e__`: Section 3.4.6
`__float80m__`: Section 3.4.6
`__FLOAT_DAZ__`: Section 6.9
`float-denorm`: Section 2.1.24
floating-point, constants: Section 3.4.6, Section 6.9
floating-point, packed BCD constants: Section 3.4.7
floating-point: Section 2.2.6, Section 3.1, Section 3.2.1, Section 3.4.6
`float-overflow`: Section 2.1.24
`__FLOAT_ROUND__`: Section 6.9
`float-toolong`: Section 2.1.24
`float-underflow`: Section 2.1.24
`follows=`: Section 7.1.3
format-specific directives: Chapter 6
`fp`: Section 5.3
frame pointer: Section 8.4.3, Section 8.5.1, Section 9.1.2
FreeBSD: Section 7.11, Section 9.2
FreeLink: Section 8.1.1
`ftp.simtel.net`: Section 8.1.1
`function`: Section 7.9.5, Section 7.13.3
functions, C calling convention: Section 8.4.3, Section 9.1.2
functions, Pascal calling convention: Section 8.5.1
`-g` option: Section 2.1.12
`gas`: Section 1.1.1
`gcc`: Section 1.1.1
`GLOBAL`: Section 6.6
`GLOBAL`, `aoutb` extensions to: Section 7.9.5
`GLOBAL`, `elf` extensions to: Section 7.9.5
`GLOBAL`, `rdf` extensions to: Section 7.13.3
global offset table: Section 9.2
`_GLOBAL_OFFSET_TABLE_`: Section 7.9.3
`gnu-elf-extensions`: Section 2.1.24
`..got`: Section 7.9.3
`GOT` relocations: Section 9.2.3
GOT: Section 7.9.3, Section 9.2
`..gotoff`: Section 7.9.3
`GOTOFF` relocations: Section 9.2.2
`..gotpc`: Section 7.9.3
`GOTPC` relocations: Section 9.2.1
`..gottpoff`: Section 7.9.4
graphics: Section 3.2.3
greedy macro parameters: Section 4.3.3
`GROUP`: Section 7.4.2
groups: Section 3.6
`-h`: Section A.3
hexadecimal: Section 3.4.1
`hidden`: Section 7.9.5
`hle`: Section 2.1.24
hybrid syntaxes: Section 2.2.2
`-I` option: Section 2.1.16
`-i` option: Section 2.1.16, Section A.3.3
`%iassign`: Section 4.1.7
`%idefine`: Section 4.1.1
`%idefstr`: Section 4.1.8
`%ideftok`: Section 4.1.9
`IEND`: Section 4.12.11
`%if`: Section 4.4, Section 4.4.4
`%ifctx`: Section 4.4.3, Section 4.7.6
`%ifdef`: Section 4.4.1
`%ifempty`: Section 4.4.8
`%ifenv`: Section 4.4.9
`%ifid`: Section 4.4.6
`%ifidn`: Section 4.4.5
`%ifidni`: Section 4.4.5
`%ifmacro`: Section 4.4.2
`%ifn`: Section 4.4, Section 4.4.4
`%ifnctx`: Section 4.4.3
`%ifndef`: Section 4.4.1
`%ifnempty`: Section 4.4.8
`%ifnenv`: Section 4.4.9
`%ifnid`: Section 4.4.6
`%ifnidn`: Section 4.4.5
`%ifnidni`: Section 4.4.5
`%ifnmacro`: Section 4.4.2
`%ifnnum`: Section 4.4.6
`%ifnstr`: Section 4.4.6
`%ifntoken`: Section 4.4.7
`%ifnum`: Section 4.4.6
`%ifstr`: Section 4.4.6
`%iftoken`: Section 4.4.7
`ifunc`: Section 5.4
`ilog2()`: Section 5.4.1
`ilog2c()`: Section 5.4.1
`ilog2e()`: Section 5.4.1
`ilog2f()`: Section 5.4.1
`ilog2w()`: Section 5.4.1
`%imacro`: Section 4.3
`IMPORT`: Section 7.4.4
import library: Section 7.4.4
importing symbols: Section 6.5
`INCBIN`: Section 3.2, Section 3.2.3, Section 3.4.4
`%include`: Section 2.1.16, Section 2.1.17, Section 4.6.1
include search path: Section 2.1.16
including other files: Section 4.6.1
inefficient code: Section 12.1.1
infinite loop: Section 3.5
`__Infinity__`: Section 3.4.6
infinity: Section 3.4.6
informational section: Section 7.5.1
`INSTALL`: Section 1.3.2
installing: Section 1.3.1
instances of structures: Section 4.12.11
instruction list: Appendix B
integer functions: Section 3.5.7, Section 5.4
integer logarithms: Section 5.4.1
intel hex: Section 7.2
Intel number formats: Section 3.4.6
`internal`: Section 7.9.5
`ISTRUC`: Section 4.12.11
iterating over macro parameters: Section 4.3.8
`ith`: Section 7.2
`%ixdefine`: Section 4.1.2
`Jcc NEAR`: Section 12.1.2
`JMP DWORD`: Section 10.1
jumps, mixed-size: Section 10.1
`-k`: Section A.3.4
`-l` option: Section 2.1.3
label preceeding macro: Section 4.3.7
label prefix: Section 3.9
last: Section 4.3.4
`.lbss`: Section 7.9.2
`ld86`: Section 7.12
`.ldata`: Section 7.9.2
`LIBRARY`: Section 7.13.1
license: Section 1.1.2
`%line`: Section 4.10.1
`__LINE__`: Section 4.12.4
linker, free: Section 8.1.1
Linux, `a.out`: Section 7.10
Linux, `as86`: Section 7.12
Linux, ELF: Section 7.9
listing file: Section 2.1.3
little-endian: Section 3.4.3
`%local`: Section 4.8.3
local labels: Section 3.9
`lock`: Section 2.1.24
logical AND: Section 4.4.4
logical negation: Section 3.5.7
logical OR: Section 4.4.4
logical XOR: Section 4.4.4
`.lrodata`: Section 7.9.2
`-M` option: Section 2.1.4
Mach, object file format: Section 7.8
Mach-O: Section 7.8
`macho`: Section 7.8
`macho32`: Section 7.8
`macho64`: Section 7.8
MacOS X: Section 7.8
`%macro`: Section 4.3
macro indirection: Section 4.1.3
macro library: Section 2.1.16
macro parameters range: Section 4.3.4
macro processor: Chapter 4
`macro-defaults`: Section 2.1.24
macro-local labels: Section 4.3.2
`macro-params`: Section 2.1.24
macros: Section 3.2.5
`macro-selfref`: Section 2.1.24
`make`: Section 1.3.2
makefile dependencies: Section 2.1.4, Section 2.1.5
makefiles: Section 1.3.1, Section 1.3.2
man pages: Section 1.3.2
map files: Section 7.1.4
`MASM`: Section 1.1.1
MASM: Section 2.2, Section 3.2.5, Section 7.4
`-MD` option: Section 2.1.7
memory models: Section 2.2.5, Section 8.4.2
memory operand: Section 3.1
memory references: Section 2.2.2, Section 3.3
`-MF` option: Section 2.1.6
`-MG` option: Section 2.1.5
Microsoft OMF: Section 7.4
minifloat: Section 3.4.6
Minix: Section 7.12
`misc` subdirectory: Section 8.1.2, Section 8.4.5, Section 9.1.4
mixed-language program: Section 8.4
mixed-size addressing: Section 10.2
mixed-size instruction: Section 10.1
MMX registers:
ModR/M byte:
`MODULE`: Section 7.13.2
modulo operators: Section 3.5.6
motorola s-records: Section 7.3
`-MP` option: Section 2.1.10
`-MQ` option: Section 2.1.9
MS-DOS: Section 7.1
MS-DOS device drivers: Section 8.3
`-MT` option: Section 2.1.8
multi-line macros: Section 2.1.24, Section 4.3
multipass optimization: Section 2.1.22
multiple section names: Section 7.1
multiplication: Section 3.5.6
`multipush` macro: Section 4.3.8
multisection: Section 7.1.3
`__NaN__`: Section 3.4.6
NaN: Section 3.4.6
NASM version: Section 4.12.1
nasm version history: Appendix C
nasm version id: Section 4.12.2
nasm version string: Section 4.12.3
`nasm.1`: Section 1.3.2
`__NASMDEFSEG`: Section 7.4
`nasm-devel`: Section 1.2
`NASMENV`: Section 2.1.28
`nasm.exe`: Section 1.3.1
`nasm -hf`: Section 2.1.2
`__NASM_MAJOR__`: Section 4.12.1
`__NASM_MINOR__`: Section 4.12.1
`nasm.out`: Section 2.1.1
`___NASM_PATCHLEVEL__`: Section 4.12.1
`__NASM_SNAPSHOT__`: Section 4.12.1
`__NASM_SUBMINOR__`: Section 4.12.1
`__NASM_VER__`: Section 4.12.3
`__NASM_VERSION_ID__`: Section 4.12.2
`nasm-XXX-dos.zip`: Section 1.3.1
`nasm-XXX.tar.gz`: Section 1.3.2
`nasm-XXX-win32.zip`: Section 1.3.1
`nasm-XXX.zip`: Section 1.3.1
ndisasm: Appendix A
`ndisasm.1`: Section 1.3.2
`ndisasm.exe`: Section 1.3.1
near call: Section 2.2.5
near common variables: Section 7.4.8
NetBSD: Section 7.11, Section 9.2
new releases: Section 1.2
`noalloc`: Section 7.9.2
`nobits`: Section 7.1.3, Section 7.9.2
`noexec`: Section 7.9.2
`.nolist`: Section 4.3.11
`nowait': Section 2.2.6
`nowrite`: Section 7.9.2
`number-overflow`: Section 2.1.24
numeric constants: Section 3.2.1, Section 3.4.1
`-O` option: Section 2.1.22
`-o` option: Section 2.1.1, Section A.3.1
`O16`: Section 3.1
`o16`: Section 10.3
`O32`: Section 3.1
`o32`: Section 10.3
`O64`: Section 3.1
`.OBJ`: Section 8.1
`obj`: Section 7.4
`object`: Section 7.9.5, Section 7.13.3
octal: Section 3.4.1
`OF_DBG`: Section 7.14
`OF_DEFAULT`: Section 2.1.2
`OFFSET`: Section 2.2.2
OMF: Section 7.4
omitted parameters: Section 4.3.5
one's complement: Section 3.5.7
OpenBSD: Section 7.11, Section 9.2
operands: Section 3.1
operand-size prefixes: Section 3.1
operating system: Section 7.1
operating system, writing: Section 10.1
operators: Section 3.5
`ORG`: Section 7.1.1, Section 8.2.1, Section 8.2.2, Section 12.1.3
`orphan-labels`: Section 2.1.24, Section 3.1
OS/2: Section 7.4, Section 7.4.1
`osabi`: Section 7.9.1
other preprocessor directives: Section 4.10
out of range, jumps: Section 12.1.2
output file format: Section 2.1.2
output formats: Chapter 7
`__OUTPUT_FORMAT__`: Section 4.12.6
overlapping segments: Section 3.6
`OVERLAY`: Section 7.4.1
overloading, multi-line macros: Section 4.3.1
overloading, single-line macros: Section 4.1.1
`-P` option: Section 2.1.17
`-p` option: Section 2.1.17, Section 4.6.1
paradox: Section 3.8
`PASCAL`: Section 8.5.3
Pascal calling convention: Section 8.5.1
`__PASS__`: Section 4.12.9
passes, assembly:
`PATH`: Section 1.3.1
`%pathsearch`: Section 2.1.16, Section 4.6.2
period: Section 3.9
Perl: Section 1.3.1
perverse: Section 2.1.16
PharLap: Section 7.4.1
PIC: Section 7.9.3, Section 7.11, Section 9.2
`..plt`: Section 7.9.3
`PLT` relocations: Section 7.9.3, Section 9.2.4, Section 9.2.5
plt relocations: Section 9.2.5
`%pop`: Section 4.7, Section 4.7.1
position-independent code: Section 7.9.3, Section 7.11, Section 9.2
`--postfix`: Section 2.1.27
precedence: Section 3.5
pre-defining macros: Section 2.1.18, Section 4.1.1
preferred: Section 3.6
`--prefix`: Section 2.1.27
pre-including files: Section 2.1.17
preprocess-only mode: Section 2.1.20
preprocessor: Section 2.1.20, Section 2.1.21, Section 3.2.4, Section 3.5.6, Chapter 4
preprocessor expressions: Section 2.1.20
preprocessor loops: Section 4.5
preprocessor variables: Section 4.1.7
primitive directives: Chapter 6
`PRIVATE`: Section 7.4.1
`proc`: Section 7.13.3, Section 8.4.5, Section 9.1.4
procedure linkage table: Section 7.9.3, Section 9.2.4, Section 9.2.5
processor mode: Section 6.1
`progbits`: Section 7.1.3, Section 7.9.2
program entry point: Section 7.4.6, Section 8.1.1
program origin: Section 7.1.1
`protected`: Section 7.9.5
pseudo-instructions: Section 3.2
`PUBLIC`: Section 6.6, Section 7.4.1
pure binary: Section 7.1
`%push`: Section 4.7, Section 4.7.1
`__QNaN__`: Section 3.4.6
quick start: Section 2.2
`QWORD`: Section 3.1
`-r`: Section A.3
`rdf`: Section 7.13
`rdoff` subdirectory: Section 1.3.2, Section 7.13
redirecting errors: Section 2.1.14
`REL`: Section 3.3, Section 6.2
relational operators: Section 4.4.4
release candidates: Section 1.2
Relocatable Dynamic Object File Format: Section 7.13
relocations, PIC-specific: Section 7.9.3
removing contexts: Section 4.7.1
renaming contexts: Section 4.7.5
`%rep`: Section 3.2.5, Section 4.5
repeating: Section 3.2.5, Section 4.5
`%repl`: Section 4.7.5
reporting bugs: Section 12.2
`RESB`: Section 2.2.7, Section 3.2, Section 3.2.2
`RESD`: Section 3.2, Section 3.2.2
`RESO`: Section 3.2, Section 3.2.2
`RESQ`: Section 3.2, Section 3.2.2
`REST`: Section 3.2, Section 3.2.2
`RESW`: Section 3.2, Section 3.2.2
`RESY`: Section 3.2, Section 3.2.2
`.rodata`: Section 7.9.2
`%rotate`: Section 4.3.8
rotating macro parameters: Section 4.3.8
`-s` option: Section 2.1.15, Section A.3.2
searching for include files: Section 4.6.1
`__SECT__`: Section 6.3.1, Section 6.4
`SECTALIGN`: Section 4.12.13
`SECTION`: Section 6.3
`SECTION`, `elf` extensions to: Section 7.9.2
`SECTION`, `win32` extensions to: Section 7.5.1
section alignment, in `bin`: Section 7.1.2
section alignment, in `elf`: Section 7.9.2
section alignment, in `obj`: Section 7.4.1
section alignment, in `win32`: Section 7.5.1
section, bin extensions to: Section 7.1.2
`SEG`: Section 3.5.7, Section 3.6, Section 7.4
`SEGMENT`: Section 6.3
`SEGMENT`, `elf` extensions to: Section 7.4.1
segment address: Section 3.5.7, Section 3.6
segment alignment, in `bin`: Section 7.1.2
segment alignment, in `obj`: Section 7.4.1
segment names, Borland Pascal: Section 8.5.2
segment override: Section 2.2.4, Section 3.1
segments: Section 3.6
segments, groups of: Section 7.4.2
separator character: Section 2.1.28
shared libraries: Section 7.11, Section 9.2
shared library: Section 7.9.5
`shift` command: Section 4.3.8
SIB byte:
signed division: Section 3.5.6
signed modulo: Section 3.5.6
single-line macros: Section 4.1
size, of symbols: Section 7.9.5
`smartalign`: Section 5.2
`__SNaN__`: Section 3.4.6
snapshots, daily development: Section 1.2
Solaris x86: Section 7.9
`-soname`: Section 9.2.6
sound: Section 3.2.3
source code: Section 1.3.1
source-listing file: Section 2.1.3
square brackets: Section 2.2.2, Section 3.3
`srec`: Section 7.3
`STACK`: Section 7.4.1
stack relative preprocessor directives: Section 4.8
`%stacksize`: Section 4.8.2
standard macro packages: Chapter 5
standard macros: Section 4.12
standardized section names: Section 6.3, Section 7.5.1, Section 7.9.2, Section 7.10, Section 7.11, Section 7.12, Section 7.13
`..start`: Section 7.4.6, Section 8.1.1
`start=`: Section 7.1.3
`stderr`: Section 2.1.14
`stdout`: Section 2.1.15
`%strcat`: Section 4.2.1
`STRICT`: Section 3.7
string constant: Section 3.2.1
string constants: Section 3.4.4
string length: Section 4.2.2
string manipulation in macros: Section 4.2
strings: Section 3.4.2
`%strlen`: Section 4.2.2
`STRUC`: Section 4.12.10, Section 6.4, Section 8.4.4, Section 9.1.3
stub preprocessor: Section 2.1.21
`%substr`: Section 4.2.3
subtraction: Section 3.5.5
suppressible warning: Section 2.1.24
suppressing preprocessing: Section 2.1.21
switching between sections: Section 6.3
`..sym`: Section 7.9.3
symbol sizes, specifying: Section 7.9.5
symbol types, specifying: Section 7.9.5
symbols, exporting from DLLs: Section 7.4.5
symbols, importing from DLLs: Section 7.4.4
`synchronisation`: Section A.3.2
`.SYS`: Section 7.1, Section 8.3
`-t`: Section 2.1.23
`TASM`: Section 1.1.1, Section 2.1.23
tasm: Section 2.2, Section 7.4
`.tbss`: Section 7.9.2
`TBYTE`: Section 2.2.7
`.tdata`: Section 7.9.2
`test` subdirectory: Section 8.1.1
testing, arbitrary numeric expressions: Section 4.4.4
testing, context stack: Section 4.4.3
testing, exact text identity: Section 4.4.5
testing, multi-line macro existence: Section 4.4.2
testing, single-line macro existence: Section 4.4.1
testing, token types: Section 4.4.6
`.text`: Section 7.9.2, Section 7.10, Section 7.11, Section 7.12, Section 7.13
`_TEXT`: Section 8.4.2
thread local storage: Section 7.9.4
`__TIME__`: Section 4.12.7
`__TIME_NUM__`: Section 4.12.7
`TIMES`: Section 3.2, Section 3.2.5, Section 3.8, Section 12.1.3, Section 12.1.4
`TLINK`: Section 8.2.2
`tls`: Section 7.9.2, Section 7.9.4
`..tlsie`: Section 7.9.4
trailing colon: Section 3.1
`TWORD`: Section 2.2.7, Section 3.1
type, of symbols: Section 7.9.5
`-U` option: Section 2.1.19
`-u` option: Section 2.1.19, Section A.3
unary operators: Section 3.5.7
`%undef`: Section 2.1.19, Section 4.1.6
undefining macros: Section 2.1.19
underscore, in C symbols: Section 8.4.1
Unicode: Section 3.4.2, Section 3.4.5
uninitialized: Section 3.2, Section 3.2.2
uninitialized storage: Section 2.2.7
Unix: Section 1.3.2
Unix, SCO: Section 7.9
Unix, source archive: Section 1.3.2
Unix, System V: Section 7.9
UnixWare: Section 7.9
`%unmacro`: Section 4.3.12
unrolled loops: Section 3.2.5
unsigned division: Section 3.5.6
unsigned modulo: Section 3.5.6
`UPPERCASE`: Section 2.2.1, Section 7.4.3
`%use`: Section 4.6.4, Chapter 5
`__USE_*__`: Section 4.12.8
`USE16`: Section 6.1.1, Section 7.4.1
`USE32`: Section 6.1.1, Section 7.4.1
`user`: Section 2.1.24
user-defined errors: Section 4.9
user-level assembler directives: Section 4.12
user-level directives: Chapter 6
`__UTC_DATE__`: Section 4.12.7
`__UTC_DATE_NUM__`: Section 4.12.7
`__UTC_TIME__`: Section 4.12.7
`__UTC_TIME_NUM__`: Section 4.12.7
UTF-16: Section 3.4.5
UTF-32: Section 3.4.5
UTF-8: Section 3.4.2
`__utf16__`: Section 3.4.5
`__utf16be__`: Section 3.4.5
`__utf16le__`: Section 3.4.5
`__utf32__`: Section 3.4.5
`__utf32be__`: Section 3.4.5
`__utf32le__`: Section 3.4.5
`-v` option: Section 2.1.25
VAL: Section 8.1.1
valid characters: Section 3.1
variable types: Section 2.2.3
version: Section 2.1.25
version number of NASM: Section 4.12.1
`vfollows=`: Section 7.1.3
Visual C++: Section 7.5
`vstart=`: Section 7.1.3
`-W` option: Section 2.1.24
`-w` option: Section 2.1.24
`%warning`: Section 4.9
warnings: Section 2.1.24
`[warning *warning-name]`: Section 2.1.24
`[warning +warning-name]`: Section 2.1.24
`[warning -warning-name]`: Section 2.1.24
website: Section 1.2
`win64`: Section 7.6, Chapter 11
Win64: Section 7.4, Section 7.5, Chapter 9
Windows: Section 8.1
Windows 95:
Windows NT:
`write`: Section 7.9.2
writing operating systems: Section 10.1
`WRT`: Section 3.6, Section 7.4, Section 7.9.3, Section 7.9.4, Section 7.11
`WRT ..got`: Section 9.2.3
`WRT ..gotoff`: Section 9.2.2
`WRT ..gotpc`: Section 9.2.1
`WRT ..plt`: Section 9.2.5
`WRT ..sym`: Section 9.2.4
WWW page:
`www.cpan.org`: Section 1.3.1
`www.delorie.com`: Section 8.1.1
`www.pcorner.com`: Section 8.1.1
`-X` option: Section 2.1.13
`x2ftp.oulu.fi`: Section 8.1.1
x32: Section 7.9
`%xdefine`: Section 4.1.2
`-y` option: Section 2.1.26
`-Z` option: Section 2.1.14

Contents