|
MASM Reserved Words |
This appendix lists the reserved words recognized by MASM. They are divided primarily by their use in the language. The primary categories are:
Operands and symbols
Registers
Operators and directives
Processor instructions
Coprocessor instructions
Reserved words in MASM 6.1 are reserved under all CPU modes. Words enabled in .8086 mode, the default, can be used in all higher CPU modes. To use words from subcategories such as Special Operands for the 80386 (later in this appendix) requires .386 mode or higher.
You can disable the recognition of any reserved word specified in this appendix by setting the NOKEYWORD option for the OPTION directive. Once disabled, the word can be used in any way as a user-defined symbol (provided the word is a valid identifier). If you want to remove the STR instruction, the MASK operator, and the NAME directive, for instance, from the set of words MASM recognizes as reserved, add this statement to your program:
OPTION NOKEYWORD:<STR MASK NAME>
Words in this appendix identified with an asterisk (*) are new since MASM 5.1.
The words on the two lists in this section are the operands to certain directives. They have special meaning to the assembler. The words on the first list are not reserved words. They can be used in every way as normal identifiers, without affecting their use as operands to directives. The assembler interprets their use from context.
Even though the words on the first list are not reserved, they should not be defined to be text macros or text macro functions. If they are, they will not be recognized in their special contexts. The assembler does not give a warning if such a redefinition occurs.
ABS
ALL
ASSUMES
AT
CASEMAP*
COMMON
COMPACT
CPU*
DOTNAME*
EMULATOR*
EPILOGUE*
ERROR*
EXPORT*
EXPR16*
EXPR32*
FARSTACK*
FLAT
FORCEFRAME
HUGE
LANGUAGE*
LARGE
LISTING*
LJMP*
LOADDS*
M510*
MEDIUM
MEMORY
NEARSTACK*
NODOTNAME*
NOEMULATOR*
NOKEYWORD*
NOLJMP*
NOM510*
NONE
NONUNIQUE*
NOOLDMACROS*
NOOLDSTRUCTS*
NOREADONLY*
NOSCOPED*
NOSIGNEXTEND*
NOTHING
NOTPUBLIC*
OLDMACROS*
OLDSTRUCTS*
OS_DOS*
PARA
PRIVATE*
PROLOGUE*
RADIX*
READONLY*
REQ*
SCOPED*
SETIF2*
SMALL
STACK
TINY
USE16
USE32
USES
These operands are reserved words. Reserved words are not case sensitive.
$
?
@B
@F
ADDR*
BASIC
BYTE
C
CARRY?*
DWORD
FAR
FAR16*
FORTRAN
FWORD
NEAR
NEAR16*
OVERFLOW?*
PARITY?*
PASCAL
QWORD
REAL4*
REAL8*
REAL10*
SBYTE*
SDWORD*
SIGN?*
STDCALL*
SWORD*
SYSCALL*
TBYTE
VARARG*
WORD
ZERO?*
FLAT*
NEAR32*
FAR32*
Unlike most MASM reserved words, predefined symbols are case sensitive.
@CatStr*
@code
@CodeSize
@Cpu
@CurSeg
@data
@DataSize
@Date*
@Environ*
@fardata
@fardata?
@FileCur*
@FileName
@InStr*
@Interface*
@Line*
@Model*
@SizeStr*
@stack*
@SubStr*
@Time*
@Version
@WordSize
AH
AL
AX
BH
BL
BP
BX
CH
CL
CR0
CR2
CR3
CS
CX
DH
DI
DL
DR0
DR1
DR2
DR3
DR6
DR7
DS
DX
EAX
EBP
EBX
ECX
EDI
EDX
ES
ESI
ESP
FS
GS
SI
SP
SS
ST
TR3*
TR4*
TR5*
TR6
TR7
|
|
.186
.286
.286C
.286P
.287
.386
.386C
.386P
.387
.486*
.486P*
.8086
.8087
.ALPHA
.BREAK*
.CODE
.CONST
.CONTINUE*
.CREF
.DATA
.DATA?
.DOSSEG*
.ELSE*
.ELSEIF*
.ENDIF*
.ENDW*
.ERR
.ERR1
.ERR2
.ERRB
.ERRDEF
.ERRDIF
.ERRDIFI
.ERRE
.ERRIDN
.ERRIDNI
.ERRNB
.ERRNDEF
.ERRNZ
.EXIT*
.FARDATA
.FARDATA?
.IF*
.LALL
.LFCOND
.LIST
.LISTALL*
.LISTIF*
.LISTMACRO*
.LISTMACROALL*
.MODEL
.NO87*
.NOCREF*
.NOLIST*
.NOLISTIF*
.NOLISTMACRO*
.RADIX
.REPEAT*
.SALL
.SEQ
.SFCOND
.STACK
.STARTUP*
.TFCOND
.TYPE
.UNTIL*
.UNTILCXZ*
.WHILE*
.XALL
.XCREF
.XLIST
ALIAS*
ALIGN
ASSUME
CATSTR
COMM
COMMENT
DB
DD
DF
DOSSEG
DQ
DT
DUP
DW
ECHO*
ELSE
ELSEIF
ELSEIF1
ELSEIF2
ELSEIFB
ELSEIFDEF
ELSEIFDIF
ELSEIFDIFI
ELSEIFE
ELSEIFIDN
ELSEIFIDNI
ELSEIFNB
ELSEIFNDEF
END
ENDIF
ENDM
ENDP
ENDS
EQ
EQU
EVEN
EXITM
EXTERN*
EXTERNDEF*
EXTRN
FOR*
FORC*
GE
GOTO*
GROUP
GT
HIGH
HIGHWORD*
IF
IF1
IF2
IFB
IFDEF
IFDIF
IFDIFI
IFE
IFIDN
IFIDNI
IFNB
IFNDEF
INCLUDE
INCLUDELIB
INSTR
INVOKE*
IRP
IRPC
LABEL
LE
LENGTH
LENGTHOF*
LOCAL
LOW
LOWWORD*
LROFFSET*
LT
MACRO
MASK
MOD
.MSFLOAT
NAME
NE
OFFSET
OPATTR*
OPTION*
ORG
%OUT
PAGE
POPCONTEXT*
PROC
PROTO*
PTR
PUBLIC
PURGE
PUSHCONTEXT*
RECORD
REPEAT*
REPT
SEG
SEGMENT
SHORT
SIZE
SIZEOF*
SIZESTR
STRUC
STRUCT*
SUBSTR
SUBTITLE*
SUBTTL
TEXTEQU*
THIS
TITLE
TYPE
TYPEDEF*
UNION*
WHILE*
WIDTH
Processor instructions are not case sensitive.
|
|
AAA
AAD
AAM
AAS
ADC
ADD
AND
CALL
CBW
CLC
CLD
CLI
CMC
CMP
CMPS
CMPSB
CMPSW
CWD
DAA
DAS
DEC
DIV
ESC
HLT
IDIV
IMUL
IN
INC
INT
INTO
IRET
JA
JAE
JB
JBE
JC
JCXZ
JE
JG
JGE
JL
JLE
JMP
JNA
JNAE
JNB
JNBE
JNC
JNE
JNG
JNGE
JNL
JNLE
JNO
JNP
JNS
JNZ
JO
JP
JPE
JPO
JS<