作者:隔壁老吴 | 来源:互联网 | 2023-01-27 18:29
#TITLE=ASM
;===================================================================
; 80x86
; Assembly Language Syntax File
;
; Written
; by
; Chris Hobbs
;
; Owner: Lightning Software
; Http://www.fastsoftware.com
;
; This file is provided as a syntax file for ASM source code.
; It has been arranged for MASM code but will highlight
; most TASM/NASM code as well. Some special cases may exist in the
; keywords that you will need to change.
;
; The keywords are arranged as follows:
;
; 1 - Pseudo-Ops
; 2 - Mnuemonics
; 3 - Types
; 4 - MASM High Level Syntax
; 5 - Registers
;===================================================================
#DELIMITER=,[]-+*%/="'~!&|/<>?:;#()
#QUOTATION1='
#QUOTATION2="
#CONTINUE_QUOTE=n
#LINECOMMENT=!
#LINECOMMENT2=;
#LINECOMMENT3=#
#COMMENTON=/*
#COMMENTOFF=*/
#COMMENTON2=
#COMMENTOFF2=
#ESCAPE=
#CASE=n
#PREFIX1=
#PREFIX2=
#PREFIX3=
#PREFIX4=
#PREFIX5=
#SUFFIX1=
#SUFFIX2=
#SUFFIX3=
#SUFFIX4=
#SUFFIX5=
;==========================================
; These are the psuedo-ops
;==========================================
#KEYWORD
COMM
CATSTR
@CATSTR
ORG
END
EQU
ALIGN
ASSUME
.CODE
.CONST
.CREF
.ERR
.ERRB
.ERRNB
.ERRDEF
.ERRNDEF
.ERRDEFI
.ERRIDNI
.ERRE
.ERRNZ
.NOCREF
.MODEL
.RADIX
.DATA?
.STACK
ECHO
ENDM
ENDS
TEXTEQU
EXITM
EXTERN
EXTERNDEF
FOR
FORC
GOTO
INCLUDE
INCLUDELIB
INVOKE
@INSTR
INSTR
LOCAL
MACRO
OPTION
CASEMAP
LANGUAGE
LJMP
OFFSET
PROC
PROLOGUE
EPILOGUE
SCOPED
NOSCOPED
PROTO
PUBLIC
PURGE
PUSHCONTEXT
POPCONTEXT
RECORD
REPEAT
REPT
STRUCT
SIZESTR
@SIZESTR
SUBSTR
@SUBSTR
TYPEDEF
UNION
USES
IFB
IFNB
IFDEF
IFNDEF
STRUC
ADDR
SIZEOF
PTR
;==========================================
; End of the psuedo-ops
;==========================================
;==========================================
; These are all of the mnuemonics
;==========================================
#KEYWORD
AAA
AAD
AAM
AAS
ADC
ADD
ADDW
ADDL
AND
ANDB
ANDW
ANDL
ARPL
BOUND
BSF
BSFL
BSR
BSWAP
BT
BTC
BTR
BTRL
BTS
CALL
CBW
CDQ
CLC
CLD
CLI
CLTS
CMC
CMP
CMPW
CMPL
CMPS
CMPXCHG
CWD
CWDE
DAA
DAS
DEC
DIV
ENTER
ESC
HLT
IDIV
IMUL
IN
INB
INW
INC
INCW
INCL
INS
INT
INTO
INVD
INVLPG
IRET
IRETD
JCXZ
JECXZ
JMP
JMPI
LAHF
LAR
LDS
LEA
LEAVE
LES
LFS
LGDT
LIDT
LGS
LLDT
LMSW
LOCK
LODS
LOOP
LOOPE
LOOPZ
LOOPNZ
LOOPNE
LSL
LSS
LTR
MOV
MOVB
MOVW
MOVL
MOVS
MOVSX
MOVZX
MUL
NEG
NOP
NOT
NOTL
OR
OUT
OUTB
OUTW
OUTS
POP
POPW
POPL
POPA
POPAD
POPF
POPFW
POPFL
POPFD
PUSH
PUSHL
PUSHA
PUSHAD
PUSHF
PUSHFL
PUSHFD
RCL
RCR
REP
REPE
REPZ
REPNE
REPNZ
RET
RETF
ROL
ROR
RORL
SAHF
SAL
SHL
SAR
SBB
SCAS
SETAE
SETNB
SETB
SETNAE
SETBE
SETNA
SETE
SETZ
SETNE
SETNZ
SETL
SETNGE
SETNL
SETGE
SETLE
SETNG
SETG
SETNLE
SETS
SETNS
SETC
SETNC
SETO
SETNO
SETP
SETPE
SETNP
SETPO
SGDT
SIDT
SHL
SHR
SHLD
SHRD
SLDT
SMSW
STC
STD
STI
STOS
STR
SUB
TEST
TESTL
VERR
VERW
WAIT
FWAIT
WBINVD
XCHG
XCHGL
XLAT
XLATB
XOR
XORL
JA
JAE
JB
JBE
JC
JGE
JE
JG
JL
JLE
JNA
JNAE
JNB
JNBE
JNC
JNE
JNG
JNGE
JNL
JNLE
JNO
JNP
JNS
JNZ
JO
JP
JPE
JPO
JS
JZ
;==========================================
; End of the mnuemonics
;==========================================
;==========================================
; These are all of the types
;==========================================
#KEYWORD
DB
DW
DD
DF
DQ
DT
BYTE
WORD
DWORD
FWORD
QWORD
TBYTE
SBYTE
SWORD
REAL4
REAL8
REAL10
SDWORD
;==========================================
; End of the types
;==========================================
;==========================================
; These are all of the MASM HL syntax
;==========================================
#KEYWORD
.BREAK
.CONTINUE
.IF
.ELSEIF
.ENDIF
.ELSE
.REPEAT
.UNTIL
.UNTILCXZ
.WHILE
.ENDW
#KEYWORD
.word
.long
.quad
.fill
.align
.globl
.text
.data
.bss
.byte
.ascii
;==========================================
; End of the MASM HL syntax
;==========================================
;==========================================
; These are all of the registers
;==========================================
#KEYWORD
AL
AH
AX
BL
BH
BX
CL
CH
CX
DL
DH
DX
SI
DI
ESI
EDI
EAX
EBX
ECX
EDX
CS
DS
SS
ES
FS
GS
SP
BP
IP
EIP
;==========================================
; End of the registers
;==========================================