xref: /vim-8.2.3635/runtime/syntax/tasm.vim (revision d47d5223)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language: TASM: turbo assembler by Borland
3071d4279SBram Moolenaar" Maintaner: FooLman of United Force <[email protected]>
4*d47d5223SBram Moolenaar" Last Change: 2012 Feb 03 by Thilo Six, and 2018 Nov 27.
5071d4279SBram Moolenaar
689bcfda6SBram Moolenaar" quit when a syntax file was already loaded
789bcfda6SBram Moolenaarif exists("b:current_syntax")
8071d4279SBram Moolenaar  finish
9071d4279SBram Moolenaarendif
10071d4279SBram Moolenaar
11b8ff1fb5SBram Moolenaarlet s:cpo_save = &cpo
12b8ff1fb5SBram Moolenaarset cpo&vim
13b8ff1fb5SBram Moolenaar
14071d4279SBram Moolenaarsyn case ignore
15071d4279SBram Moolenaarsyn match tasmLabel "^[\ \t]*[@a-z_$][a-z0-9_$@]*\ *:"
16071d4279SBram Moolenaarsyn keyword tasmDirective ALIAS ALIGN ARG ASSUME %BIN CATSRT CODESEG
17071d4279SBram Moolenaarsyn match tasmDirective "\<\(byte\|word\|dword\|qword\)\ ptr\>"
18071d4279SBram Moolenaar" CALL extended syntax
19071d4279SBram Moolenaarsyn keyword tasmDirective COMM %CONDS CONST %CREF %CREFALL %CREFREF
20071d4279SBram Moolenaarsyn keyword tasmDirective %CREFUREF %CTLS DATASEG DB DD %DEPTH DF DISPLAY
21071d4279SBram Moolenaarsyn keyword tasmDirective DOSSEG DP DQ DT DW ELSE EMUL END ENDIF
22071d4279SBram Moolenaar" IF XXXX
23071d4279SBram Moolenaarsyn keyword tasmDirective ENDM ENDP ENDS ENUM EQU ERR EVEN EVENDATA EXITCODE
24071d4279SBram Moolenaarsyn keyword tasmDirective EXITM EXTRN FARDATA FASTIMUL FLIPFLAG GETFIELD GLOBAL
25071d4279SBram Moolenaarsyn keyword tasmDirective GOTO GROUP IDEAL %INCL INCLUDE INCLUDELIB INSTR IRP
26071d4279SBram Moolenaar"JMP
27071d4279SBram Moolenaarsyn keyword tasmDirective IRPC JUMPS LABEL LARGESTACK %LINUM %LIST LOCAL
28071d4279SBram Moolenaarsyn keyword tasmDirective LOCALS MACRO %MACS MASKFLAG MASM MASM51 MODEL
29071d4279SBram Moolenaarsyn keyword tasmDirective MULTERRS NAME %NEWPAGE %NOCONDS %NOCREF %NOCTLS
30071d4279SBram Moolenaarsyn keyword tasmDirective NOEMUL %NOINCL NOJUMPS %NOLIST NOLOCALS %NOMACS
31071d4279SBram Moolenaarsyn keyword tasmDirective NOMASM51 NOMULTERRS NOSMART %NOSYMS %NOTRUNC NOWARN
32071d4279SBram Moolenaarsyn keyword tasmDirective %PAGESIZE %PCNT PNO87 %POPLCTL POPSTATE PROC PROCDESC
33071d4279SBram Moolenaarsyn keyword tasmDirective PROCTYPE PUBLIC PUBLICDLL PURGE %PUSHCTL PUSHSTATE
34071d4279SBram Moolenaar"rept, ret
35071d4279SBram Moolenaarsyn keyword tasmDirective QUIRKS RADIX RECORD RETCODE SEGMENT SETFIELD
36071d4279SBram Moolenaarsyn keyword tasmDirective SETFLAG SIZESTR SMALLSTACK SMART STACK STARTUPCODE
37071d4279SBram Moolenaarsyn keyword tasmDirective STRUC SUBSTR %SUBTTL %SYMS TABLE %TABSIZE TBLINIT
38071d4279SBram Moolenaarsyn keyword tasmDirective TBLINST TBLPTR TESTFLAG %TEXT %TITLE %TRUNC TYPEDEF
39071d4279SBram Moolenaarsyn keyword tasmDirective UDATASEG UFARDATA UNION USES VERSION WAR WHILE ?DEBUG
40071d4279SBram Moolenaar
41071d4279SBram Moolenaarsyn keyword tasmInstruction AAA AAD AAM AAS ADC ADD AND ARPL BOUND BSF BSR
42071d4279SBram Moolenaarsyn keyword tasmInstruction BSWAP BT BTC BTR BTS CALL CBW CLC CLD CLI CLTS
43071d4279SBram Moolenaarsyn keyword tasmInstruction CMC CMP CMPXCHG CMPXCHG8B CPUID CWD CDQ CWDE
44071d4279SBram Moolenaarsyn keyword tasmInstruction DAA DAS DEC DIV ENTER RETN RETF F2XM1
45071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FABS FADD FADDP FBLD FBSTP FCHG FCOM FCOM2 FCOMI
46071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FCOMIP FCOMP FCOMP3 FCOMP5 FCOMPP FCOS FDECSTP
47071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FDISI FDIV FDIVP FDIVR FENI FFREE FFREEP FIADD
48071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FICOM FICOMP FIDIV FIDIVR FILD FIMUL FINIT FINCSTP
49071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FIST FISTP FISUB FISUBR FLD FLD1 FLDCW FLDENV
50071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FLDL2E FLDL2T FLDLG2 FLDLN2 FLDPI FLDZ FMUL FMULP
51071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FNCLEX FNINIT FNOP FNSAVE FNSTCW FNSTENV FNSTSW
52071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FPATAN FPREM FPREM1 FPTAN FRNDINT FRSTOR FSCALE
53071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FSETPM FSIN FSINCOM FSQRT FST FSTP FSTP1 FSTP8
54071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FSTP9 FSUB FSUBP FSUBR FSUBRP FTST FUCOM FUCOMI
55071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FUCOMPP FWAIT FXAM FXCH FXCH4 FXCH7 FXTRACT FYL2X
56071d4279SBram Moolenaarsyn keyword tasmCoprocInstr FYL2XP1 FSTCW FCHS FSINCOS
57071d4279SBram Moolenaarsyn keyword tasmInstruction IDIV IMUL IN INC INT INTO INVD INVLPG IRET JMP
58071d4279SBram Moolenaarsyn keyword tasmInstruction LAHF LAR LDS LEA LEAVE LES LFS LGDT LGS LIDT LLDT
59071d4279SBram Moolenaarsyn keyword tasmInstruction LMSW LOCK LODSB LSL LSS LTR MOV MOVSX MOVZX MUL
60071d4279SBram Moolenaarsyn keyword tasmInstruction NEG NOP NOT OR OUT POP POPA POPAD POPF POPFD PUSH
61071d4279SBram Moolenaarsyn keyword tasmInstruction PUSHA PUSHAD PUSHF PUSHFD RCL RCR RDMSR RDPMC RDTSC
62071d4279SBram Moolenaarsyn keyword tasmInstruction REP RET ROL ROR RSM SAHF SAR SBB SGDT SHL SAL SHLD
63071d4279SBram Moolenaarsyn keyword tasmInstruction SHR SHRD SIDT SMSW STC STD STI STR SUB TEST VERR
64071d4279SBram Moolenaarsyn keyword tasmInstruction VERW WBINVD WRMSR XADD XCHG XLAT XOR
65071d4279SBram Moolenaarsyn keyword tasmMMXinst     EMMS MOVD MOVQ PACKSSDW PACKSSWB PACKUSWB PADDB
66071d4279SBram Moolenaarsyn keyword tasmMMXinst     PADDD PADDSB PADDSB PADDSW PADDUSB PADDUSW PADDW
67071d4279SBram Moolenaarsyn keyword tasmMMXinst     PAND PANDN PCMPEQB PCMPEQD PCMPEQW PCMPGTB PCMPGTD
68071d4279SBram Moolenaarsyn keyword tasmMMXinst     PCMPGTW PMADDWD PMULHW PMULLW POR PSLLD PSLLQ
69071d4279SBram Moolenaarsyn keyword tasmMMXinst     PSLLW PSRAD PSRAW PSRLD PSRLQ PSRLW PSUBB PSUBD
70071d4279SBram Moolenaarsyn keyword tasmMMXinst     PSUBSB PSUBSW PSUBUSB PSUBUSW PSUBW PUNPCKHBW
71071d4279SBram Moolenaarsyn keyword tasmMMXinst     PUNPCKHBQ PUNPCKHWD PUNPCKLBW PUNPCKLDQ PUNPCKLWD
72071d4279SBram Moolenaarsyn keyword tasmMMXinst     PXOR
73071d4279SBram Moolenaar"FCMOV
74071d4279SBram Moolenaarsyn match tasmInstruction "\<\(CMPS\|MOVS\|OUTS\|SCAS\|STOS\|LODS\|INS\)[BWD]"
75071d4279SBram Moolenaarsyn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABCGLESXZ]\>"
76071d4279SBram Moolenaarsyn match tasmInstruction "\<\(CMOV\|SET\|J\)N\=[ABGL]E\>"
77071d4279SBram Moolenaarsyn match tasmInstruction "\<\(LOOP\|REP\)N\=[EZ]\=\>"
78071d4279SBram Moolenaarsyn match tasmRegister "\<[A-D][LH]\>"
79071d4279SBram Moolenaarsyn match tasmRegister "\<E\=\([A-D]X\|[SD]I\|[BS]P\)\>"
80071d4279SBram Moolenaarsyn match tasmRegister "\<[C-GS]S\>"
81071d4279SBram Moolenaarsyn region tasmComment start=";" end="$"
82071d4279SBram Moolenaar"HACK! comment ? ... selection
83071d4279SBram Moolenaarsyn region tasmComment start="comment \+\$" end="\$"
84071d4279SBram Moolenaarsyn region tasmComment start="comment \+\~" end="\~"
85071d4279SBram Moolenaarsyn region tasmComment start="comment \+#" end="#"
86071d4279SBram Moolenaarsyn region tasmString start="'" end="'"
87071d4279SBram Moolenaarsyn region tasmString start='"' end='"'
88071d4279SBram Moolenaar
89071d4279SBram Moolenaarsyn match tasmDec "\<-\=[0-9]\+\.\=[0-9]*\>"
90071d4279SBram Moolenaarsyn match tasmHex "\<[0-9][0-9A-F]*H\>"
91071d4279SBram Moolenaarsyn match tasmOct "\<[0-7]\+O\>"
92071d4279SBram Moolenaarsyn match tasmBin "\<[01]\+B\>"
93071d4279SBram Moolenaar
94071d4279SBram Moolenaar" Define the default highlighting.
9589bcfda6SBram Moolenaar" Only when an item doesn't have highlighting yet
96071d4279SBram Moolenaar
97f37506f6SBram Moolenaarhi def link tasmString String
98f37506f6SBram Moolenaarhi def link tasmDec Number
99f37506f6SBram Moolenaarhi def link tasmHex Number
100f37506f6SBram Moolenaarhi def link tasmOct Number
101f37506f6SBram Moolenaarhi def link tasmBin Number
102f37506f6SBram Moolenaarhi def link tasmInstruction Keyword
103f37506f6SBram Moolenaarhi def link tasmCoprocInstr Keyword
104f37506f6SBram Moolenaarhi def link tasmMMXInst	Keyword
105f37506f6SBram Moolenaarhi def link tasmDirective PreProc
106f37506f6SBram Moolenaarhi def link tasmRegister Identifier
107f37506f6SBram Moolenaarhi def link tasmProctype PreProc
108f37506f6SBram Moolenaarhi def link tasmComment Comment
109f37506f6SBram Moolenaarhi def link tasmLabel Label
110071d4279SBram Moolenaar
111071d4279SBram Moolenaar
112*d47d5223SBram Moolenaarlet b:current_syntax = "tasm"
113b8ff1fb5SBram Moolenaar
114b8ff1fb5SBram Moolenaarlet &cpo = s:cpo_save
115b8ff1fb5SBram Moolenaarunlet s:cpo_save
116