- $, Variations on
Loops
-
- here, Expressions
- prefix, Layout of a
NASM Source Line, Numeric
Constants
- $$, Expressions
- % operator, *, /,
//, % and %%: Multiplication and Division
- %% operator, *, /,
//, % and %%: Multiplication and Division
- %clear, Standard
Macros
- %rep, TIMES: Repeating
Instructions or Data
- & operator, &: Bitwise AND
Operator
- >> operator, << and >>: Bit
Shift Operators
- << operator, << and >>: Bit
Shift Operators
- * operator, *, /,
//, % and %%: Multiplication and Division
- + operator
-
- binary, + and -: Addition
and Subtraction Operators
- unary, Unary
Operators: +, -, ~ and SEG
- - operator
-
- binary, + and -: Addition
and Subtraction Operators
- unary, Unary
Operators: +, -, ~ and SEG
- ..@ symbol prefix, Local
Labels
- / operator, *, /,
//, % and %%: Multiplication and Division
- // operator, *, /,
//, % and %%: Multiplication and Division
- 16-bit mode
-
- versus 32-bit mode, BITS:
Specifying Target Processor Mode
- ?, RESB and
friends: Declaring Uninitialized Data
- ^ operator, ^:
Bitwise XOR Operator
- __FILE__, __FILE__ and
__LINE__: File Name and Line Number
- __LINE__, __FILE__ and
__LINE__: File Name and Line Number
- __NASM_MAJOR__, __NASM_MAJOR__ and
__NASM_MINOR__: NASM Version
- __NASM_MINOR__, __NASM_MAJOR__ and
__NASM_MINOR__: NASM Version
- __SECT__, The
__SECT__ Macro, ABSOLUTE:
Defining Absolute Labels
- | operator, |:
Bitwise OR Operator
- ~ operator, Unary Operators: +, -, ~ and
SEG
- a16, CMPSB, CMPSW, CMPSD:
Compare Strings, INSB, INSW, INSD: Input
String from I/O Port, LODSB, LODSW, LODSD:
Load from String, MOVSB, MOVSW, MOVSD:
Move String, OUTSB, OUTSW, OUTSD:
Output String to I/O Port, POP: Pop Data from
Stack, PUSH: Push Data on
Stack, SCASB, SCASW, SCASD:
Scan String, STOSB, STOSW, STOSD:
Store Byte to String, XLATB: Translate Byte
in Lookup Table
- a32, CMPSB, CMPSW, CMPSD:
Compare Strings, INSB, INSW, INSD: Input
String from I/O Port, LODSB, LODSW, LODSD:
Load from String, MOVSB, MOVSW, MOVSD:
Move String, OUTSB, OUTSW, OUTSD:
Output String to I/O Port, POP: Pop Data from
Stack, PUSH: Push Data on
Stack, SCASB, SCASW, SCASD:
Scan String, STOSB, STOSW, STOSD:
Store Byte to String, XLATB: Translate Byte
in Lookup Table
- AAA, AAA,
AAS, AAM, AAD: ASCII Adjustments
- AAD, AAA,
AAS, AAM, AAD: ASCII Adjustments
- AAM, AAA,
AAS, AAM, AAD: ASCII Adjustments
- AAS, AAA,
AAS, AAM, AAD: ASCII Adjustments
- ABSOLUTE, ABSOLUTE:
Defining Absolute Labels
- ADC, ADC:
Add with Carry
- ADD, ADD:
Add Integers
- Addition, +
and -: Addition and Subtraction Operators
- ADDPS, ADDPS:
Add Packed Single-Precision FP Values
- address-size prefixes, Layout of a NASM Source Line
- ADDSS, ADDSS:
Add Scalar Single-Precision FP Values
- algebra, Effective
Addresses
- ALIGN, ALIGN
and ALIGNB: Data Alignment
- ALIGNB, ALIGN and ALIGNB: Data
Alignment
- AND, AND:
Bitwise AND
- ANDNPS, ANDNPS: Bitwise Logical
AND NOT of Packed Single-Precision FP Values
- ANDPS, ANDPS:
Bitwise Logical AND For Single FP
- argument, Entering
Commands
- ARPL, ARPL:
Adjust RPL Field of Selector
- Assembler Directives, Assembler Directives
- assembly passes, Critical
Expressions
- AT, ISTRUC,
AT and IEND: Declaring Instances of Structures
- batch files, Batch files
- binary, Numeric
Constants
- Binary Files, INCBIN: Including
External Binary Files
- Bit Shift, << and >>: Bit
Shift Operators
- BITS, BITS: Specifying
Target Processor Mode
- Bitwise AND, &: Bitwise AND
Operator
- Bitwise OR, |:
Bitwise OR Operator
- Bitwise XOR, ^:
Bitwise XOR Operator
- BOUND, BOUND: Check Array
Index against Bounds
- Breakpoints, Breakpoints
- BSF, BSF,
BSR: Bit Scan
- BSR, BSF,
BSR: Bit Scan
- BSWAP, BSWAP: Byte
Swap
- BT, BT, BTC,
BTR, BTS: Bit Test
- BTC, BT, BTC,
BTR, BTS: Bit Test
- BTR, BT, BTC,
BTR, BTS: Bit Test
- BTS, BT, BTC,
BTR, BTS: Bit Test
- CALL, CALL:
Call Subroutine
- CALL FAR, SEG and WRT
- CBW, CBW,
CWD, CDQ, CWDE: Sign Extensions
- CDQ, CBW,
CWD, CDQ, CWDE: Sign Extensions
- changing sections, SECTION or
SEGMENT: Changing and Defining Sections
- character constant, DB and Friends: Declaring
Initialized Data
- Character Constants, Character
Constants
- CLC, CLC,
CLD, CLI, CLTS: Clear Flags
- CLD, CLC,
CLD, CLI, CLTS: Clear Flags
- CLFLUSH, CLFLUSH: Flush Cache
Line
- CLI, CLC,
CLD, CLI, CLTS: Clear Flags
- CLTS, CLC,
CLD, CLI, CLTS: Clear Flags
- CMC, CMC:
Complement Carry Flag
- CMDORDPS, CMPccPS: Packed
Single-Precision FP Compare
- CMOVcc, CMOVcc: Conditional
Move
- CMP, CMP:
Compare Integers
- CMPccPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPEQPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPLEPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPLTPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPNEQPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPNLEPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPNLTPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPSB, CMPSB, CMPSW, CMPSD:
Compare Strings
- CMPSD, CMPSB, CMPSW, CMPSD:
Compare Strings
- CMPSW, CMPSB, CMPSW, CMPSD:
Compare Strings
- CMPUNORDPS, CMPccPS: Packed
Single-Precision FP Compare
- CMPXCHG, CMPXCHG: Compare and
Exchange
- CMPXCHG8B, CMPXCHG8B: Compare
and Exchange Eight Bytes
- colon, Layout of a NASM
Source Line
- COMISS, COMISS: Scalar Ordered
Single-Precision FP Compare and Set EFLAGS
- Command Prompt, Microsoft Windows /
DOS
- COMMON, COMMON: Defining
Common Data Areas
- common variables, COMMON: Defining
Common Data Areas
- Condition Codes, Condition
Codes
- Condition Predicates, CMPccPS: Packed
Single-Precision FP Compare
- conditional jump, Jcc: Conditional
Branch
- Constants, Constants
- Control registers, Register
Values
- CPU, CPU: Defining CPU
Dependencies
- CPUID, Character Constants, CPUID: Get CPU
Identification Code
- critical expression, RESB and friends:
Declaring Uninitialized Data, EQU: Defining
Constants, ABSOLUTE:
Defining Absolute Labels
- Critical Expressions, Critical
Expressions
- CVTPI2PS, CVTPI2PS: Packed
Signed INT32 to Packed Single-FP Conversion
- CVTPS2PI, CVTPS2PI: Packed
Single-Precision FP to Packed Signed INT32
Conversion
- CVTSD2SS, CVTSD2SS: Scalar
Double-Precision FP to Scalar Single-Precision FP
Conversion
- CVTSI2SS, CVTSI2SS: Signed INT32
to Scalar Single-Precision FP Conversion
- CVTSS2SI, CVTSS2SI: Scalar
Single-Precision FP to Signed INT32 Conversion
- CVTTPS2PI, CVTTPS2PI: Packed
Single-Precision FP to Packed Signed INT32 Conversion with
Truncation
- CVTTSS2SI, CVTTSS2SI: Scalar
Single-Precision FP to Signed INT32 Conversion with
Truncation
- CWD, CBW,
CWD, CDQ, CWDE: Sign Extensions
- CWDE, CBW,
CWD, CDQ, CWDE: Sign Extensions
- DAA, DAA,
DAS: Decimal Adjustments
- DAS, DAA,
DAS: Decimal Adjustments
- DB, Pseudo-Instructions,
DB and Friends:
Declaring Initialized Data, String Constants
- DD, Pseudo-Instructions,
DB and Friends:
Declaring Initialized Data, String Constants, Floating-Point
Constants
- Debug registers, Register
Values
- DEC, DEC:
Decrement Integer
- Declaring Structure, STRUC and ENDSTRUC:
Declaring Structure Data Types
- Defining Sections, SECTION or
SEGMENT: Changing and Defining Sections
- disk drive name, Files and
Filenames
- DIV, DIV:
Unsigned Integer Divide
- Division, *, /,
//, % and %%: Multiplication and Division
- DIVPS, DIVPS:
Packed Single-Precision FP Divide
- DIVSS, DIVSS:
Scalar Single-Precision FP Divide
- DOS, Microsoft
Windows / DOS
- DOS prompt, Microsoft Windows /
DOS
- DQ, Pseudo-Instructions,
DB and Friends:
Declaring Initialized Data, String Constants, Floating-Point
Constants
- DT, Pseudo-Instructions,
DB and Friends:
Declaring Initialized Data, String Constants, Floating-Point
Constants
- DUP, TIMES: Repeating
Instructions or Data
- DW, Pseudo-Instructions,
DB and Friends:
Declaring Initialized Data, String Constants
- DWORD, Layout of a NASM
Source Line
- effective address, Effective
Addresses
- effective addresses, Layout of a NASM Source Line, Effective Address
Encoding: ModR/M and SIB
- effective-address, Critical
Expressions
- EMMS, EMMS:
Empty MMX State
- ENDSTRUC, STRUC and ENDSTRUC:
Declaring Structure Data Types, ABSOLUTE:
Defining Absolute Labels
- ENTER, ENTER: Create Stack
Frame
- EQU, Pseudo-Instructions,
EQU: Defining
Constants, Critical
Expressions
- Exporting Symbols, GLOBAL: Exporting
Symbols to Other Modules
- Expressions, Expressions
- extension, Files and
Filenames
- EXTERN, Rules for
NASM Procedures that Call External Procedures, EXTERN: Importing
Symbols from Other Modules
- F2XM1, F2XM1: Calculate
2**X-1
- FABS, FABS:
Floating-Point Absolute Value
- FADD, FADD,
FADDP: Floating-Point Addition
- FADDP, FADD, FADDP:
Floating-Point Addition
- far call, CALL: Call
Subroutine
- far jump, JMP: Jump
- far pointer, SEG and
WRT
- FBLD, FBLD,
FBSTP: BCD Floating-Point Load and Store
- FBSTP, FBLD, FBSTP: BCD
Floating-Point Load and Store
- FCHS, FCHS:
Floating-Point Change Sign
- FCLEX, FCLEX, FNCLEX: Clear
Floating-Point Exceptions
- FCMOVcc, FCMOVcc:
Floating-Point Conditional Move
- FCOM, FCOM,
FCOMP, FCOMPP, FCOMI, FCOMIP: Floating-Point Compare
- FCOMI, FCOM, FCOMP, FCOMPP,
FCOMI, FCOMIP: Floating-Point Compare
- FCOMIP, FCOM, FCOMP, FCOMPP,
FCOMI, FCOMIP: Floating-Point Compare
- FCOMP, FCOM, FCOMP, FCOMPP,
FCOMI, FCOMIP: Floating-Point Compare
- FCOMPP, FCOM, FCOMP, FCOMPP,
FCOMI, FCOMIP: Floating-Point Compare
- FCOS, FCOS:
Cosine
- FDECSTP, FDECSTP: Decrement
Floating-Point Stack Pointer
- FDISI, FxDISI, FxENI: Disable
and Enable Floating-Point Interrupts
- FDIV, FDIV,
FDIVP, FDIVR, FDIVRP: Floating-Point Division
- FDIVP, FDIV, FDIVP, FDIVR,
FDIVRP: Floating-Point Division
- FDIVR, FDIV, FDIVP, FDIVR,
FDIVRP: Floating-Point Division
- FDIVRP, FDIV, FDIVP, FDIVR,
FDIVRP: Floating-Point Division
- FENI, FxDISI, FxENI: Disable
and Enable Floating-Point Interrupts
- FFREE, FFREE: Flag
Floating-Point Register as Unused
- FFREEP, FFREE: Flag
Floating-Point Register as Unused
- FIADD, FIADD:
Floating-Point/Integer Addition
- FICOM, FICOM, FICOMP:
Floating-Point/Integer Compare
- FICOMP, FICOM, FICOMP:
Floating-Point/Integer Compare
- FIDIV, FIDIV, FIDIVR:
Floating-Point/Integer Division
- FIDIVR, FIDIV, FIDIVR:
Floating-Point/Integer Division
- FILD, FILD,
FIST, FISTP: Floating-Point/Integer Conversion
- file specification, Files and
Filenames
- filename, Files and
Filenames
- FIMUL, FIMUL:
Floating-Point/Integer Multiplication
- FINCSTP, FINCSTP: Increment
Floating-Point Stack Pointer
- FINIT, FINIT, FNINIT:
Initialise Floating-Point Unit
- FIST, FILD,
FIST, FISTP: Floating-Point/Integer Conversion
- FISTP, FILD, FIST, FISTP:
Floating-Point/Integer Conversion
- FISUB, FISUB:
Floating-Point/Integer Subtraction
- FLD, FLD:
Floating-Point Load
- FLDCW, FLDCW: Load
Floating-Point Control Word
- FLDENV, FLDENV: Load
Floating-Point Environment
- FLDxx, FLDxx: Floating-Point
Load Constants
- floating-point, Layout of
a NASM Source Line, DB and Friends: Declaring
Initialized Data
-
- constants, Floating-Point
Constants
- registers,
Register Values
- FMUL, FMUL,
FMULP: Floating-Point Multiply
- FMULP, FMUL, FMULP:
Floating-Point Multiply
- FNCLEX, FCLEX, FNCLEX: Clear
Floating-Point Exceptions
- FNDISI, FxDISI, FxENI: Disable
and Enable Floating-Point Interrupts
- FNENI, FxDISI, FxENI: Disable
and Enable Floating-Point Interrupts
- FNINIT, FINIT, FNINIT:
Initialise Floating-Point Unit
- FNOP, FNOP:
Floating-Point No Operation
- FNSAVE, FSAVE, FRSTOR:
Save/Restore Floating-Point State
- FNSTCW, FSTCW: Store
Floating-Point Control Word
- FNSTENV, FSTENV: Store
Floating-Point Environment
- FNSTSW, FSTSW: Store
Floating-Point Status Word
- format-specific directives, Assembler Directives
- forward references, Critical
Expressions
- FPATAN, FPATAN, FPTAN:
Arctangent and Tangent
- FPREM, FPREM, FPREM1:
Floating-Point Partial Remainder
- FPREM1, FPREM, FPREM1:
Floating-Point Partial Remainder
- FPTAN, FPATAN, FPTAN:
Arctangent and Tangent
- FRNDINT, FRNDINT:
Floating-Point Round to Integer
- FRSTOR, FSAVE, FRSTOR:
Save/Restore Floating-Point State
- FSAVE, FSAVE, FRSTOR:
Save/Restore Floating-Point State
- FSCALE, FSCALE: Scale
Floating-Point Value by Power of Two
- FSETPM, FSETPM: Set Protected
Mode
- FSIN, FSIN,
FSINCOS: Sine and Cosine
- FSINCOS, FSIN, FSINCOS: Sine and
Cosine
- FSQRT, FSQRT: Floating-Point
Square Root
- FST, FST,
FSTP: Floating-Point Store
- FSTCW, FSTCW: Store
Floating-Point Control Word
- FSTENV, FSTENV: Store
Floating-Point Environment
- FSTP, FST,
FSTP: Floating-Point Store
- FSTSW, FSTSW: Store
Floating-Point Status Word
- FSUB, FSUB,
FSUBP, FSUBR, FSUBRP: Floating-Point Subtract
- FSUBP, FSUB, FSUBP, FSUBR,
FSUBRP: Floating-Point Subtract
- FSUBR, FSUB, FSUBP, FSUBR,
FSUBRP: Floating-Point Subtract
- FSUBRP, FSUB, FSUBP, FSUBR,
FSUBRP: Floating-Point Subtract
- FTST, FTST:
Test ST0 Against Zero
- FUCOMxx, FUCOMxx:
Floating-Point Unordered Compare
- FXAM, FXAM:
Examine Class of Value in ST0
- FXCH, FXCH:
Floating-Point Exchange
- FXRSTOR, FXRSTOR: Restore
FPU, MMX, and XMM State
- FXSAVE, FXSAVE: Store FPU,
MMX, and XMM State
- FXTRACT, FXTRACT: Extract
Exponent and Significand
- FYL2X, FYL2X, FYL2XP1:
Compute Y times Log2(X) or Log2(X+1)
- FYL2XP1, FYL2X, FYL2XP1:
Compute Y times Log2(X) or Log2(X+1)
- general purpose register, Key to Operand
Specifications
- GLOBAL, Rules for
NASM Procedures that Call External Procedures, GLOBAL: Exporting
Symbols to Other Modules
- graphics, INCBIN: Including
External Binary Files
- groups, SEG and WRT
- hex, Numeric
Constants
- HLT, HLT:
Halt Processor
- ICEBP, INT3, INT1, ICEBP,
INT01: Breakpoints
- IDIV, IDIV:
Signed Integer Divide
- IEND, ISTRUC, AT and IEND:
Declaring Instances of Structures
- immediate operand, Key to Operand
Specifications
- Importing Symbols, EXTERN: Importing
Symbols from Other Modules
- IMUL, IMUL:
Signed Integer Multiply
- IN, IN: Input
from I/O Port
- INC, INC:
Increment Integer
- INCBIN, Pseudo-Instructions, INCBIN: Including
External Binary Files, String Constants
- infinite loop, Expressions
- Initialized, DB and Friends: Declaring
Initialized Data
- INSB, INSB,
INSW, INSD: Input String from I/O Port
- INSD, INSB,
INSW, INSD: Input String from I/O Port
- Instances of Structures, ISTRUC, AT and IEND:
Declaring Instances of Structures
- INSW, INSB,
INSW, INSD: Input String from I/O Port
- INT, INT:
Software Interrupt
- INT01, INT3, INT1, ICEBP,
INT01: Breakpoints
- INT1, INT3,
INT1, ICEBP, INT01: Breakpoints
- INT3, INT3,
INT1, ICEBP, INT01: Breakpoints
- integer overflow, Expressions
- Intel number formats, Floating-Point
Constants
- interface specification, Argument
Transmission
- INTO, INTO:
Interrupt if Overflow
- INVD, INVD:
Invalidate Internal Caches
- INVLPG, INVLPG: Invalidate
TLB Entry
- IRET, IRET,
IRETW, IRETD: Return from Interrupt
- IRETD, IRET, IRETW, IRETD:
Return from Interrupt
- IRETW, IRET, IRETW, IRETD:
Return from Interrupt
- ISTRUC, ISTRUC, AT and IEND:
Declaring Instances of Structures
- Jcc, Jcc:
Conditional Branch
- JCXZ, JCXZ,
JECXZ: Jump if CX/ECX Zero
- JECXZ, JCXZ, JECXZ: Jump if
CX/ECX Zero
- JMP, JMP:
Jump
- label prefix, Local
Labels
- LAHF, LAHF:
Load AH from Flags
- LAR, LAR:
Load Access Rights
- LDMXCSR, LDMXCSR: Load Streaming
SIMD Extension Control/Status
- LDS, LDS,
LES, LFS, LGS, LSS: Load Far Pointer
- LEA, LEA:
Load Effective Address
- LEAVE, LEAVE: Destroy Stack
Frame
- LES, LDS,
LES, LFS, LGS, LSS: Load Far Pointer
- LFENCE, LFENCE: Load
Fence
- LFS, LDS,
LES, LFS, LGS, LSS: Load Far Pointer
- LGDT, LGDT,
LIDT, LLDT: Load Descriptor Tables
- LGS, LDS,
LES, LFS, LGS, LSS: Load Far Pointer
- LIDT, LGDT,
LIDT, LLDT: Load Descriptor Tables
- little-endian, Character
Constants
- LLDT, LGDT,
LIDT, LLDT: Load Descriptor Tables
- LMSW, LMSW:
Load/Store Machine Status Word
- Local Labels, Local
Labels
- LODSB, LODSB, LODSW, LODSD:
Load from String
- LODSD, LODSB, LODSW, LODSD:
Load from String
- LODSW, LODSB, LODSW, LODSD:
Load from String
- LOOP, LOOP,
LOOPE, LOOPZ, LOOPNE, LOOPNZ: Loop with Counter
- LOOPE, LOOP, LOOPE, LOOPZ,
LOOPNE, LOOPNZ: Loop with Counter
- LOOPNE, LOOP, LOOPE, LOOPZ,
LOOPNE, LOOPNZ: Loop with Counter
- LOOPNZ, LOOP, LOOPE, LOOPZ,
LOOPNE, LOOPNZ: Loop with Counter
- LOOPZ, LOOP, LOOPE, LOOPZ,
LOOPNE, LOOPNZ: Loop with Counter
- LSL, LSL:
Load Segment Limit
- LSS, LDS,
LES, LFS, LGS, LSS: Load Far Pointer
- LTR, LTR:
Load Task Register
- macros, TIMES: Repeating
Instructions or Data
- Make, Batch
files
- MASKMOVQ, MASKMOVQ: Byte Mask
Write
- MAXPS, MAXPS:
Return Packed Single-Precision FP Maximum
- MAXSS, MAXSS:
Return Scalar Single-Precision FP Maximum
- memory operand, Layout of
a NASM Source Line
- memory reference, Effective
Addresses, Key to Operand
Specifications
- MFENCE, MFENCE: Memory
Fence
- MINPS, MINPS:
Return Packed Single-Precision FP Minimum
- MINSS, MINSS:
Return Scalar Single-Precision FP Minimum
- MMX registers, Register
Values
- ModR/M byte, Key to
Opcode Descriptions, Effective Address
Encoding: ModR/M and SIB
- modulo operators, *, /, //, % and %%:
Multiplication and Division
- MOV, MOV:
Move Data
- MOVAPS, MOVAPS: Move Aligned
Packed Single-Precision FP Values
- MOVD, MOVD:
Move Doubleword to/from MMX Register
- MOVHLPS, MOVHLPS: Move Packed
Single-Precision FP High to Low
- MOVHPS, MOVHPS: Move High Packed
Single-Precision FP
- MOVLHPS, MOVLHPS: Move Packed
Single-Precision FP Low to High
- MOVLPS, MOVLPS: Move Low Packed
Single-Precision FP
- MOVMSKPS, MOVMSKPS: Extract
Packed Single-Precision FP Sign Mask
- MOVNTPS, MOVNTPS: Move Aligned
Four Packed Single-Precision FP Values Non Temporal
- MOVNTQ, MOVNTQ: Move Quadword
Non Temporal
- MOVQ, MOVQ:
Move Quadword to/from Packed Data Register
- MOVSB, MOVSB, MOVSW, MOVSD:
Move String
- MOVSD, MOVSB, MOVSW, MOVSD:
Move String
- MOVSS, MOVSS:
Move Scalar Single-Precision FP Value
- MOVSW, MOVSB, MOVSW, MOVSD:
Move String
- MOVSX, MOVSX, MOVZX: Move
Data with Sign or Zero Extend
- MOVUPS, MOVUPS: Move Unaligned
Packed Single-Precision FP Values
- MOVZX, MOVSX, MOVZX: Move
Data with Sign or Zero Extend
- MUL, MUL:
Unsigned Integer Multiply
- MULPS, MULPS:
Packed Single-Precision FP Multiply
- MULSS, MULSS:
Scalar Single-Precision FP Multiply
- Multiplication, *,
/, //, % and %%: Multiplication and Division
- NASM Version, __NASM_MAJOR__ and
__NASM_MINOR__: NASM Version
- near call, CALL: Call
Subroutine
- near jump, JMP: Jump
- NEG, NEG,
NOT: Two's and One's Complement
- NOP, NOP: No
Operation
- NOSPLIT, Effective
Addresses
- NOT, NEG,
NOT: Two's and One's Complement
- numeric constant, DB and Friends: Declaring
Initialized Data
- Numeric Constants, Numeric Constants
- o16, POP:
Pop Data from Stack, PUSH: Push Data on
Stack
- o32, POP:
Pop Data from Stack, PUSH: Push Data on
Stack
- octal, Numeric
Constants
- one's complement, Unary Operators: +, -, ~ and
SEG
- operand-size prefixes, Layout of a NASM Source Line
- operands, Layout of a
NASM Source Line
- operators, Expressions
- OR, OR:
Bitwise OR
- orphan-labels, Layout of
a NASM Source Line
- ORPS, ORPS:
Bit-wise Logical OR of Single-Precision FP Data
- OUT, OUT:
Output Data to I/O Port
- OUTSB, OUTSB, OUTSW, OUTSD:
Output String to I/O Port
- OUTSD, OUTSB, OUTSW, OUTSD:
Output String to I/O Port
- OUTSW, OUTSB, OUTSW, OUTSD:
Output String to I/O Port
- overlapping segments, SEG and
WRT
- PACKSSDW, PACKSSDW, PACKSSWB,
PACKUSWB: Pack Data
- PACKSSWB, PACKSSDW, PACKSSWB,
PACKUSWB: Pack Data
- PACKUSWB, PACKSSDW, PACKSSWB,
PACKUSWB: Pack Data
- PADDB, PADDB,
PADDW, PADDD: Add Packed Integers
- PADDD, PADDB,
PADDW, PADDD: Add Packed Integers
- PADDQ, PADDQ:
Add Packed Quadword Integers
- PADDSB, PADDSB, PADDSW: Add
Packed Signed Integers with Saturation
- PADDSW, PADDSB, PADDSW: Add
Packed Signed Integers with Saturation
- PADDUSB, PADDUSB, PADDUSW: Add
Packed Unsigned Integers with Saturation
- PADDUSW, PADDUSB, PADDUSW: Add
Packed Unsigned Integers with Saturation
- PADDW, PADDB,
PADDW, PADDD: Add Packed Integers
- PAND, PAND,
PANDN: Packed Integer Bitwise AND and AND-NOT
- PANDN, PAND,
PANDN: Packed Integer Bitwise AND and AND-NOT
- paradox, Critical
Expressions
- passes, Critical
Expressions
- path, Files
and Filenames
- PAUSE, PAUSE: Spin Loop
Hint
- PAVGB, PAVGB,
PAVGW: Average Packed Integers
- PAVGW, PAVGB,
PAVGW: Average Packed Integers
- PCMPxx, PCMPxx: Compare Packed
Integers
- period, Local
Labels
- PEXTRW, PEXTRW: Extract
Word
- PINSRW, PINSRW: Insert
Word
- PMADDWD, PMADDWD: Packed Integer
Multiply and Add
- PMAXSW, PMAXSW: Packed Signed
Integer Word Maximum
- PMAXUB, PMAXUB: Packed Unsigned
Integer Byte Maximum
- PMINSW, PMINSW: Packed Signed
Integer Word Minimum
- PMINUB, PMINUB: Packed Unsigned
Integer Byte Minimum
- PMOVMSKB, PMOVMSKB: Move Byte
Mask To Integer
- PMULHUW, PMULHUW: Multiply
Packed 16-bit Integers, and Store High Word
- PMULHW, PMULHW, PMULLW: Multiply
Packed 16-bit Integers and Store
- PMULLW, PMULHW, PMULLW: Multiply
Packed 16-bit Integers and Store
- POP, POP:
Pop Data from Stack
- POPAx, POPAx: Pop All
General-Purpose Registers
- POPFx, POPFx: Pop Flags
Register
- POR, POR:
Packed Data Bitwise OR
- precedence, Expressions
- preferred, SEG and
WRT
- PREFETCHh, PREFETCHh:
Prefetch Data Into Caches
- PREFETCHNTA, PREFETCHh:
Prefetch Data Into Caches
- PREFETCHT0, PREFETCHh:
Prefetch Data Into Caches
- PREFETCHT1, PREFETCHh:
Prefetch Data Into Caches
- PREFETCHT2, PREFETCHh:
Prefetch Data Into Caches
- preprocessor, EQU: Defining
Constants
- primitive directives, Assembler Directives
- Processor Mode, BITS: Specifying
Target Processor Mode
- prompt, Microsoft
Windows / DOS
- PSADBW, PSADBW: Packed Sum of
Absolute Differences
- PSHUFW, PSHUFW: Shuffle Packed
Words
- PSLLx, PSLLx:
Packed Data Bit Shift Left Logical
- PSRAx, PSRAx:
Packed Data Bit Shift Right Arithmetic
- PSRLx, PSRLx:
Packed Data Bit Shift Right Logical
- PSUBSxx, PSUBSxx, PSUBUSx:
Subtract Packed Integers with Saturation
- PSUBUSx, PSUBSxx, PSUBUSx:
Subtract Packed Integers with Saturation
- PSUBx, PSUBx:
Subtract Packed Integers
- PUBLIC, GLOBAL: Exporting
Symbols to Other Modules
- PUNPCKxxx, PUNPCKxxx: Unpack and
Interleave Data
- PUSH, PUSH:
Push Data on Stack
- PUSHAx, PUSHAx: Push All
General-Purpose Registers
- PUSHFx, PUSHFx: Push Flags
Register
- PXOR, PXOR:
Packed Data Bitwise XOR
- QWORD, Layout of a NASM
Source Line
- RCL, RCL,
RCR: Bitwise Rotate through Carry Bit
- RCPPS, RCPPS:
Packed Single-Precision FP Reciprocal
- RCPSS, RCPSS:
Scalar Single-Precision FP Reciprocal
- RCR, RCL,
RCR: Bitwise Rotate through Carry Bit
- RDMSR, RDMSR: Read
Model-Specific Registers
- RDPMC, RDPMC: Read
Performance-Monitoring Counters
- RDTSC, RDTSC: Read Time-Stamp
Counter
- register push, PUSH: Push Data on
Stack
- Repeating, TIMES: Repeating
Instructions or Data
- RESB, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data, Critical Expressions
- RESD, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data
- RESQ, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data
- REST, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data
- Restricted memory references, Key to Operand
Specifications
- RESW, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data
- RET, RET,
RETF, RETN: Return from Procedure Call
- RETF, RET,
RETF, RETN: Return from Procedure Call
- RETN, RET,
RETF, RETN: Return from Procedure Call
- ROL, ROL,
ROR: Bitwise Rotate
- ROR, ROL,
ROR: Bitwise Rotate
- RPL, ARPL:
Adjust RPL Field of Selector
- RSM, RSM:
Resume from System-Management Mode
- RSQRTPS, RSQRTPS: Packed
Single-Precision FP Square Root Reciprocal
- RSQRTSS, RSQRTSS: Scalar
Single-Precision FP Square Root Reciprocal
- SAHF, SAHF:
Store AH to Flags
- SAL, SAL,
SAR: Bitwise Arithmetic Shifts
- SALC, SALC:
Set AL from Carry Flag
- SAR, SAL,
SAR: Bitwise Arithmetic Shifts
- SBB, SBB:
Subtract with Borrow
- SCASB, SCASB, SCASW, SCASD:
Scan String
- SCASD, SCASB, SCASW, SCASD:
Scan String
- SCASW, SCASB, SCASW, SCASD:
Scan String
- SECTION, SECTION or
SEGMENT: Changing and Defining Sections
- SEG, Unary
Operators: +, -, ~ and SEG, SEG and WRT
- SEGMENT, SECTION or
SEGMENT: Changing and Defining Sections
- segment address, Unary Operators: +, -, ~ and
SEG, SEG and WRT
- segment override, Layout
of a NASM Source Line
- Segment registers, Register
Values
- segments, SEG and WRT
- SETcc, SETcc: Set Register
from Condition
- Setting a breakpoint, Breakpoints
- SFENCE, SFENCE: Store
Fence
- SGDT, SGDT,
SIDT, SLDT: Store Descriptor Table Pointers
- SHL, SHL,
SHR: Bitwise Logical Shifts
- SHLD, SHLD,
SHRD: Bitwise Double-Precision Shifts
- SHR, SHL,
SHR: Bitwise Logical Shifts
- SHRD, SHLD,
SHRD: Bitwise Double-Precision Shifts
- SHUFPS, SHUFPS: Shuffle Packed
Single-Precision FP Values
- SIB byte, Key to
Opcode Descriptions, Effective Address
Encoding: ModR/M and SIB
- SIDT, SGDT,
SIDT, SLDT: Store Descriptor Table Pointers
- signed division, *, /, //, % and %%:
Multiplication and Division
- signed modulo, *,
/, //, % and %%: Multiplication and Division
- SLDT, SGDT,
SIDT, SLDT: Store Descriptor Table Pointers
- SMSW, SMSW:
Store Machine Status Word
- sound, INCBIN: Including
External Binary Files
- SQRTPS, SQRTPS: Packed
Single-Precision FP Square Root
- SQRTSS, SQRTSS: Scalar
Single-Precision FP Square Root
- square brackets, Effective
Addresses
- SSE Condition Predicates, SSE Condition
Predicates
- Standard Macros, Standard
Macros
- standardized section names, SECTION or
SEGMENT: Changing and Defining Sections
- STC, STC,
STD, STI: Set Flags
- STD, STC,
STD, STI: Set Flags
- STI, STC,
STD, STI: Set Flags
- STMXCSR, STMXCSR: Store
Streaming SIMD Extension Control/Status
- STOSB, STOSB, STOSW, STOSD:
Store Byte to String
- STOSD, STOSB, STOSW, STOSD:
Store Byte to String
- STOSW, STOSB, STOSW, STOSD:
Store Byte to String
- STR, STR:
Store Task Register
- STRICT, STRICT: Inhibiting
Optimization
- string constant, DB and Friends: Declaring
Initialized Data
- String Constants, String Constants
- STRUC, STRUC
and ENDSTRUC: Declaring Structure Data Types, ABSOLUTE:
Defining Absolute Labels
- SUB, SUB:
Subtract Integers
- SUBPS, SUBPS:
Packed Single-Precision FP Subtract
- SUBSS, SUBSS:
Scalar Single-FP Subtract
- Subtraction, + and -: Addition and
Subtraction Operators
- switching between sections, SECTION or
SEGMENT: Changing and Defining Sections
- SYSCALL, SYSCALL: Call
Operating System
- SYSENTER, SYSENTER: Fast
System Call
- SYSEXIT, SYSEXIT: Fast Return
From System Call
- SYSRET, SYSRET: Return From
Operating System
- system files, Files and
Filenames
- TEST, TEST:
Test Bits (notional bitwise AND)
- Test registers, Register
Values
- TIMES, Pseudo-Instructions, TIMES: Repeating
Instructions or Data, Critical
Expressions
- two-pass assembler, Critical
Expressions
- TWORD, Layout of a NASM
Source Line
- UCOMISS, UCOMISS: Unordered
Scalar Single-Precision FP compare and set EFLAGS
- Unary Operators, Unary Operators: +, -, ~ and
SEG
- uninitialized, Pseudo-Instructions, RESB and friends:
Declaring Uninitialized Data
- UNPCKHPS, UNPCKHPS: Unpack and
Interleave High Packed Single-Precision FP Values
- UNPCKLPS, UNPCKLPS: Unpack and
Interleave Low Packed Single-Precision FP Data
- unrolled loops, TIMES: Repeating
Instructions or Data
- unsigned division, *, /, //, % and %%:
Multiplication and Division
- unsigned modulo, *, /, //, % and %%:
Multiplication and Division
- USE16, USE16 and
USE32: Aliases for BITS
- USE32, USE16 and
USE32: Aliases for BITS
- user-level assembler directives, Standard Macros
- user-level directives, Assembler Directives
- Valid characters, Layout
of a NASM Source Line
- VERR, VERR,
VERW: Verify Segment Readability/Writability
- version number of NASM, __NASM_MAJOR__ and
__NASM_MINOR__: NASM Version
- VERW, VERR,
VERW: Verify Segment Readability/Writability
- WAIT, WAIT:
Wait for Floating-Point Processor
- WBINVD, WBINVD: Write Back
and Invalidate Cache
- wildcards, Wildcards
- Windows, Microsoft
Windows / DOS
- WRMSR, WRMSR: Write
Model-Specific Registers
- WRT, SEG and WRT
- XADD, XADD:
Exchange and Add
- XCHG, XCHG:
Exchange
- XLATB, XLATB: Translate Byte
in Lookup Table
- XOR, XOR:
Bitwise Exclusive OR
- XORPS, XORPS:
Bitwise Logical XOR of Single-Precision FP Values