Operator used exclusively with INVOKE to pass the address of a variable to a procedure. Returns the address of a variable. Specifies a type for a memory address. Pseudo-Instruction declaring initialized data. Byte (1 byte, 8 bit). DB is a synonym of BYTE Pseudo-Instruction declaring initialized data. Word, Half Precision (2 bytes, 16 bit). DW is a synonym of WORD. Pseudo-Instruction declaring initialized data. Double Word, Single Precision (4 bytes, 32 bit). DD is a synonym of DWORD. Pseudo-Instruction declaring initialized data. (6 bytes, 48 bit). DF is a synonym of FWORD. Pseudo-Instruction declaring initialized data. Quad word, Double Precision (8 bytes, 64 bit). DQ is a synonym of QWORD. Pseudo-Instruction declaring initialized data. Extended (Double) Precision (10 bytes, 80 bit). DT is a synonym of TBYTE. Pseudo-Instruction declaring initialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit), DO is a synonym of OWORD. Pseudo-Instruction declaring initialized data. (32 bytes, 256 bit). DY is a synonym of YWORD. Pseudo-Instruction declaring initialized data. (64 bytes, 512 bit). DZ is a synonym of ZWORD. Pseudo-Instruction declaring uninitialized data. Byte (1 byte, 8 bit). RESB is a synonym of BYTE Pseudo-Instruction declaring uninitialized data. Word, Half Precision (2 bytes, 16 bit). RESW is a synonym of WORD. Pseudo-Instruction declaring uninitialized data. Double Word, Single Precision (4 bytes, 32 bit). RESD is a synonym of DWORD. Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit). RESQ is a synonym of QWORD. Pseudo-Instruction declaring uninitialized data. Extended (Double) Precision (10 bytes, 80 bit). REST is a synonym of TBYTE. Pseudo-Instruction declaring uninitialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit), RESO is a synonym of OWORD. Pseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit). RESY is a synonym of YWORD. Pseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit). RESZ is a synonym of ZWORD. Boolean A handle to a window Pseudo-Instruction declaring uninitialized data. Byte (1 byte, 8 bit) Pseudo-Instruction declaring uninitialized data. Signed Byte (1 byte, 8 bit) Pseudo-Instruction declaring uninitialized data. Word, Half Precision (2 bytes, 16 bit) Pseudo-Instruction declaring uninitialized data. Signed Word, Half Precision (2 bytes, 16 bit) Pseudo-Instruction declaring uninitialized data. Double Word, Single Precision (4 bytes, 32 bit) Pseudo-Instruction declaring uninitialized data. Signed Double Word, Single Precision (4 bytes, 32 bit) Pseudo-Instruction declaring uninitialized data. (6 bytes, 48 bit). Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit) Pseudo-Instruction declaring uninitialized data. Quad word, Double Precision (8 bytes, 64 bit) Pseudo-Instruction declaring uninitialized data. Extended (Double) Precision (10 bytes, 80 bit) Pseudo-Instruction declaring uninitialized data. (16 bytes, 128 bit) Pseudo-Instruction declaring uninitialized data. IEEE 754-2008 Quad Precision (16 bytes, 128 bit) Pseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit) Pseudo-Instruction declaring uninitialized data. (32 bytes, 256 bit) Pseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit) Pseudo-Instruction declaring uninitialized data. (64 bytes, 512 bit) Allocates and optionally initializes a single-precision (4-byte) floating-point number for each initializer. Allocates and optionally initializes a double-precision (8-byte) floating-point number for each initializer. Allocates and optionally initializes a 10-byte floating-point number for each initializer. Allocates and optionally initializes 10 bytes of storage for each initializer. Can also be used as a type specifier anywhere a type is legal. MASM64: Generates a UWOP_ALLOC_SMALL or a UWOP_ALLOC_LARGE with the specified size for the current offset in the prologue. MASM64: Signals the end of the prologue declarations. MASM64: Generates a UWOP_PUSH_MACHFRAME unwind code entry. If the optional code is specified, the unwind code entry is given a modifier of 1. Otherwise the modifier is 0. MASM64: Generates a UWOP_PUSH_NONVOL unwind code entry for the specified register number using the current offset in the prologue. MASM64: Generates either a UWOP_SAVE_NONVOL or a UWOP_SAVE_NONVOL_FAR unwind code entry for the specified register (reg) and offset (offset) using the current prologue offset. MASM will choose the most efficient encoding. MASM64: Generates either a UWOP_SAVE_XMM128 or a UWOP_SAVE_XMM128_FAR unwind code entry for the specified XMM register and offset using the current prologue offset. MASM will choose the most efficient encoding. MASM64: Fills in the frame register field and offset in the unwind information using the specified register (reg) and offset (offset). The offset must be a multiple of 16 and less than or equal to 240. This directive also generates a UWOP_SET_FPREG unwind code entry for the specified register using the current prologue offset. Aligns the next variable or instruction on a byte that is a multiple of number. Aligns the next variable or instruction on an even byte. Creates a new label by assigning the current location-counter value and the given type to name. Sets the location counter to expression. Marks the beginning of an alternate block within a conditional block. Combines ELSE and IF into one statement. ELSEIF block evaluated on every assembly pass if OPTION:SETIF2 is TRUE. Grants assembly of ifstatements if expression1 is true (nonzero) or elseifstatements if expression1 is false (0) and expression2 is true. IF block is evaluated on every assembly pass if OPTION:SETIF2 is TRUE. Grants assembly if textitem is not blank. Grants assembly if textitem is blank. Grants assembly if name is a previously defined label, variable, or symbol. Grants assembly if name has not been defined. Grants assembly if the text items are different. Grants assembly if expression is false (0). Grants assembly if the text items are identical. 32-bit MASM only. The ALIAS directive creates an alternate name for a function. Generates code to terminate a .WHILE or .REPEAT block if condition is true. Generates code to jump to the top of a .WHILE or .REPEAT block if condition is true. Generates code to jump to the top of a .WHILE or .REPEAT block if condition is false. Generates code that tests condition1 (for example, AX > 7) and executes the statements if that condition is true. Generates code that tests condition1 (for example, AX > 7) and executes the statements if that condition is true. 32-bit MASM only. 32-bit MASM only. Generates code that tests condition1 (for example, AX > 7) and executes the statements if that condition is true. (32 bit MASM only) Generates code that repeats execution of the block of statements until condition becomes true. .UNTILCXZ, which becomes true when CX is zero, may be substituted for .UNTIL. The condition is optional with .UNTILCXZ. Generates code that repeats execution of the block of statements until condition becomes true. .UNTILCXZ, which becomes true when CX is zero, may be substituted for .UNTIL. The condition is optional with .UNTILCXZ. Generates code that repeats execution of the block of statements until condition becomes true. .UNTILCXZ, which becomes true when CX is zero, may be substituted for .UNTIL. The condition is optional with .UNTILCXZ. Generates code that executes the block of statements while condition remains true. Generates an error. .ERR block evaluated on every assembly pass if OPTION:SETIF2 is TRUE. Generates an error if textitem is blank. Generates an error if name is a previously defined label, variable, or symbol. Generates an error if the text items are different. Generates an error if expression is false (0). Generates an error if the text items are identical. Generates an error if textitem is not blank. Generates an error if name has not been defined. Generates an error if expression is true (nonzero). EQU defines a symbol to a given constant value: when EQU is used, the source line must contain a label. The action of EQU is to define the given label name to the value of its (only) operand. This definition is absolute, and cannot change later. Assigns textitem to name. The textitem can be a literal string, a constant preceded by a %, or the string returned by a macro function. Enables listing of symbols in the symbol portion of the symbol table and browser file. Starts listing of statements. Starts listing of all statements. Starts listing of statements in false conditional blocks. Starts listing of macro expansion statements that generate code or data. Starts listing of all statements in macros. Suppresses listing of symbols in the symbol table and browser file. The first directive sets line length and character width of the program listing. If no arguments are given, generates a page break. The second directive increments the section number and resets the page number to 1. Defines the listing subtitle. Same as SUBTTL. Toggles listing of false conditional blocks. Defines the program listing title. Terminates a macro or repeat block. Terminates expansion of the current repeat or macro block and begins assembly of the next statement outside the block. Transfers assembly to the line marked :macrolabel. In the first directive, within a macro, LOCAL defines labels that are unique to each instance of the macro. Marks a macro block called name and establishes parameter placeholders for arguments passed when the macro is called. Deletes the specified macros from memory. Enables error checking for register values. Treats all text between or on the same line as the delimiters as a comment. Displays message to the standard output device (by default, the screen). Marks the end of a module and, optionally, sets the program entry point to address. The .FPO directive controls the emission of debug records to the .debug$F segment or section. Inserts source code from the source file given by filename into the current source file during assembly. Informs the linker that the current module should be linked with libraryname. Enables and disables features of the assembler. Restores part or all of the current context (saved by the PUSHCONTEXT directive). The context can be ASSUMES, RADIX, LISTING, CPU, or ALL. Saves part or all of the current context: segment register assumes, radix value, listing and cref flags, or processor/coprocessor values. The context can be ASSUMES, RADIX, LISTING, CPU, or ALL. Sets the default radix, in the range 2 to 16, to the value of expression. Registers a function as a structured exception handler. Marks the end of procedure name previously begun with PROC. Calls the procedure at the address given by expression, passing the arguments on the stack or in registers according to the standard calling conventions of the language type. Marks start and end of a procedure block called label. The statements in the block can be called with the CALL instruction or INVOKE directive. Prototypes a function. Enables assembly of nonprivileged instructions for the 80386 processor; disables assembly of instructions introduced with later processors. Enables assembly of all instructions (including privileged) for the 80386 processor; disables assembly of instructions introduced with later processors. Enables assembly of instructions for the 80387 coprocessor. Enables assembly of nonprivileged instructions for the 80486 processor. Enables assembly of all instructions (including privileged) for the 80486 processor. Enables assembly of nonprivileged instructions for the Pentium processor. Enables assembly of all instructions (including privileged) for the Pentium processor. Enables assembly of nonprivileged instructions for the Pentium Pro processor. Enables assembly of all instructions (including privileged) for the Pentium Pro processor. Enables assembly of K3D instructions. Enables assembly of MMX or single-instruction, multiple data (SIMD) instructions. Enables assembly of Internet Streaming SIMD Extension instructions. Marks a block that will be repeated once for each argument, with the current argument replacing parameter on each repetition. Marks a block that will be repeated once for each character in string, with the current character replacing parameter on each repetition. Creates a communal variable with the attributes specified in definition. Defines one or more external variables, labels, or symbols called name whose type is type. Defines one or more external variables, labels, or symbols called name whose type is type. Defines one or more external variables, labels, or symbols called name whose type is type. Makes each variable, label, or absolute symbol specified as name available to all other modules in the program. Orders segments alphabetically. Orders the segments according to the MS-DOS segment convention: CODE first, then segments not in DGROUP, and then segments in DGROUP. Marks the end of segment, structure, or union name previously begun with SEGMENT, STRUCT, UNION, or a simplified segment directive. Add the specified segments to the group called name. Defines a program segment called name having segment attributes Orders segments sequentially (the default order). When used with .MODEL, indicates the start of a code segment. When used with .MODEL, starts a constant data segment (with segment name CONST). When used with .MODEL, starts a near data segment for initialized data (segment name _DATA). When used with .MODEL, starts a near data segment for uninitialized data (segment name _BSS). Generates termination code. When used with .MODEL, starts a far data segment for initialized data (segment name FAR_DATA or name). When used with .MODEL, starts a far data segment for uninitialized data (segment name FAR_BSS or name). Initializes the program memory model. When used with .MODEL, defines a stack segment (with segment name STACK). The optional size specifies the number of bytes for the stack (default 1,024). The .STACK directive automatically closes the stack statement. Generates program start-up code. Concatenates text items. Finds the first occurrence of textitem2 in textitem1. Finds the size of a text item. Returns a substring of textitem, starting at position. The textitem can be a literal string, a constant preceded by a %, or the string returned by a macro function. Declares a record type consisting of the specified fields. fieldname names the field, width specifies the number of bits, and expression gives its initial value. Declares a structure type having the specified fielddeclarations. Each field must be a valid data definition. Same as STRUC. Defines a new type called name, which is equivalent to type. Declares a union of one or more data types. The fielddeclarations must be valid data definitions. Omit the ENDS name label on nested UNION definitions. Starts listing of all statements in macros. Same as .LISTMACROALL. Starts listing of statements in false conditional blocks. Same as .LISTIF. Suppresses program listing. Same as .XLIST Suppresses listing of macro expansions. Suppresses listing of conditional blocks whose condition evaluates to false (0). Starts listing of macro expansion statements that generate code or data. Suppresses listing of symbols in the symbol table and browser file. Suppresses program listing. Same as .NOLIST The TIMES prefix causes the instruction to be assembled multiple times.