Appendix A. JWasm Reserved Words

Asmc Macro Assembler

Appendix A. JWasm Reserved Words

Reserved Words are case-insensitive. Besides the items listed below all instruction mnemonics are also Reserved Words.

Registers 16- and 32-bit Modes

8-bit registers AL CL DL BL AH CH DH BH
16-bit registers AX CX DX BX SP BP SI DI
32-bit registers EAX ECX EDX EBX ESP EBP ESI EDI
Segment registers ES CS SS DS FS GS
Floating-point registers ST ST(1) ST(2) ST(3) ST(4) ST(5) ST(6) ST(7)
MMX registers MM0 MM1 MM2 MM3 MM4 MM5 MM6 MM7
SSE registers XMM0 XMM1 XMM2 XMM3 XMM4 XMM5 XMM6 XMM7
AVX registers YMM0 YMM1 YMM2 YMM3 YMM4 YMM5 YMM6 YMM7
Control registers CR0 CR2 CR3 CR4
Debug registers DR0 DR1 DR2 DR3 DR6 DR7
Test registers[1] TR3 TR4 TR5 TR6 TR7
[1]: invalid in 64-bit mode.

Additional Registers in 64-bit Mode

8-bit registers SPL BPL SIL DIL
R8B R9B R10B R11B R12B R13B R14B R15B
16-bit registers R8W R9W R10W R11W R12W R13W R14W R15W
32-bit registers R8D R9D R10D R11D R12D R13D R14D R15D
64-bit registers RAX RCX RDX RBX RSP RBP RSI RDI
R8 R9 R10 R11 R12 R13 R14 R15
SSE registers XMM8 XMM9 XMM10 XMM11 XMM12 XMM13 XMM14 XMM15
AVX registers YMM8 YMM9 YMM10 YMM11 YMM12 YMM13 YMM14 YMM15
Control registers CR8

Types

BYTE
SBYTE
WORD
SWORD
DWORD
SDWORD
REAL4
FWORD
QWORD
SQWORD
REAL8
TBYTE
REAL10
OWORD
YMMWORD
NEAR
FAR
NEAR16
NEAR32
FAR16
FAR32
MMWORD
XMMWORD

Unary Operators

.TYPE
HIGH
HIGH32
HIGHWORD
IMAGEREL[1]
LENGTH
LENGTHOF
LOW
LOW32
LOWWORD
LROFFSET
MASK
OFFSET
OPATTR
SECTIONREL[1]
SEG
SHORT
SIZE
SIZEOF
THIS
TYPE
WIDTH
[1]: not for OMF output format.

Binary Operators

EQ
NE
GE
GT
LE
LT
MOD
PTR
DUP
SHL[1]
SHR[1]
AND[1]
OR[1]
XOR[1]
[1]: these keywords are also instructions.

Directives

.8086
.186
.286
.286C
.286P
.386
.386C
.386P
.486
.486P
.586
.586P
.686
.686P
.K3D
.MMX
.XMM
.X64
.X64P
.8087
.287
.387
.NO87
.CREF
.LIST
.LISTALL
.LISTIF, .LFCOND
.NOCREF, .XCREF
.NOLIST, .XLIST
.NOLISTIF, .SFCOND
.TFCOND
PAGE
SUBTITLE, SUBTTL
TITLE
.LISTMACRO, .XALL
.LISTMACROALL, .LALL
.NOLISTMACRO, .SALL
.ALPHA
.DOSSEG, DOSSEG
.SEQ
.CODE
.STACK
.DATA
.DATA?
.FARDATA
.FARDATA?
.CONST
.IF
.REPEAT
.WHILE
.BREAK
.CONTINUE
.ELSE
.ELSEIF
.ENDIF
.ENDW
.UNTIL
.UNTILCXZ
.EXIT
.STARTUP
.MODEL
.RADIX
.SAFESEH
.ERR
.ERR1
.ERR2
.ERRE
.ERRNZ
.ERRDIF
.ERRDIFI
.ERRIDN
.ERRIDNI
.ERRB
.ERRNB
.ERRDEF
.ERRNDEF
COMMENT
IF
IFE
IF1
IF2
IFDIF
IFDIFI
IFIDN
IFIDNI
IFB
IFNB
IFDEF
IFNDEF
ELSE
ELSEIF
ELSEIFE
ELSEIF1
ELSEIF2
ELSEIFDIF
ELSEIFDIFI
ELSEIFIDN
ELSEIFIDNI
ELSEIFB
ELSEIFNB
ELSEIFDEF
ELSEIFNDEF
ENDIF
FOR, IRP
FORC, IRPC
REPEAT, REPT
WHILE
MACRO
EXITM
ENDM
GOTO
PURGE
INCLUDE
TEXTEQU
CATSTR
SUBSTR
INSTR
SIZESTR
DB
DW
DD
DF
DQ
DT
STRUCT, STRUC
UNION
TYPEDEF
RECORD
COMM
EXTERN, EXTRN
EXTERNDEF
PUBLIC
PROTO
PROC
ENDP
LOCAL
LABEL
INVOKE
ORG
ALIGN
EVEN
SEGMENT
ENDS
GROUP
ASSUME
ALIAS
ECHO, %OUT
END
EQU
INCBIN
INCLUDELIB
NAME
OPTION
POPCONTEXT
PUSHCONTEXT

Additional Directives in 64-bit Mode

.ALLOCSTACK
.ENDPROLOG
.PUSHFRAME
.PUSHREG
.SAVEREG
.SAVEXMM128
.SETFRAME

Other Reserved Words

ADDR
FLAT
VARARG
FRAME[1]
C
SYSCALL[2]
STDCALL
PASCAL
FORTRAN
BASIC
FASTCALL
[1]: in 64-bit mode only.
[2]: in 64-bit, calling convention SYSCALL is renamed to SYSCALL_, since in this mode there exists a SYSCALL instruction.