xref: /vim-8.2.3635/runtime/syntax/fasm.vim (revision 89bcfda6)
1071d4279SBram Moolenaar" Vim syntax file
2071d4279SBram Moolenaar" Language:	Flat Assembler (FASM)
3071d4279SBram Moolenaar" Maintainer:	Ron Aaron <[email protected]>
4db7207e6SBram Moolenaar" Last Change:	2012/02/13
5071d4279SBram Moolenaar" Vim URL:	http://www.vim.org/lang.html
6071d4279SBram Moolenaar" FASM Home:	http://flatassembler.net/
7db7207e6SBram Moolenaar" FASM Version: 1.56
8071d4279SBram Moolenaar
9*89bcfda6SBram Moolenaar" quit when a syntax file was already loaded
10*89bcfda6SBram Moolenaarif exists("b:current_syntax")
11071d4279SBram Moolenaar  finish
12071d4279SBram Moolenaarendif
13071d4279SBram Moolenaar
14db7207e6SBram Moolenaarlet s:cpo_save = &cpo
15db7207e6SBram Moolenaarset cpo&vim
16db7207e6SBram Moolenaar
17071d4279SBram Moolenaarsetlocal iskeyword=a-z,A-Z,48-57,.,_
18071d4279SBram Moolenaarsetlocal isident=a-z,A-Z,48-57,.,_
19071d4279SBram Moolenaarsyn case ignore
20071d4279SBram Moolenaar
21071d4279SBram Moolenaarsyn keyword fasmRegister	ah al ax bh bl bp bx ch cl cr0 cr1 cr2 cr3 cr4 cr5 cr6
22071d4279SBram Moolenaarsyn keyword fasmRegister	cr7 cs cx dh di dl dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7 ds dx
23071d4279SBram Moolenaarsyn keyword fasmRegister	eax ebp ebx ecx edi edx es esi esp fs gs mm0 mm1 mm2 mm3
24071d4279SBram Moolenaarsyn keyword fasmRegister	mm4 mm5 mm6 mm7 si sp ss st st0 st1 st2 st3 st4 st5 st6
25071d4279SBram Moolenaarsyn keyword fasmRegister	st7 tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7 xmm0 xmm1 xmm2 xmm3
26071d4279SBram Moolenaarsyn keyword fasmRegister	xmm4 xmm5 xmm6 xmm7
27071d4279SBram Moolenaarsyn keyword fasmAddressSizes 	byte dqword dword fword pword qword tword word
28071d4279SBram Moolenaarsyn keyword fasmDataDirectives 	db dd df dp dq dt du dw file rb rd rf rp rq rt rw
29071d4279SBram Moolenaarsyn keyword fasmInstr 	aaa aad aam aas adc add addpd addps addsd addss addsubpd
30071d4279SBram Moolenaarsyn keyword fasmInstr	addsubps and andnpd andnps andpd andps arpl bound bsf bsr
31071d4279SBram Moolenaarsyn keyword fasmInstr	bswap bt btc btr bts call cbw cdq clc cld clflush cli clts
32071d4279SBram Moolenaarsyn keyword fasmInstr	cmc cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovl
33071d4279SBram Moolenaarsyn keyword fasmInstr	cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovng
34071d4279SBram Moolenaarsyn keyword fasmInstr	cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovp
35071d4279SBram Moolenaarsyn keyword fasmInstr	cmovpe cmovpo cmovs cmovz cmp cmpeqpd cmpeqps cmpeqsd cmpeqss
36071d4279SBram Moolenaarsyn keyword fasmInstr	cmplepd cmpleps cmplesd cmpless cmpltpd cmpltps cmpltsd cmpltss
37071d4279SBram Moolenaarsyn keyword fasmInstr	cmpneqpd cmpneqps cmpneqsd cmpneqss cmpnlepd cmpnleps cmpnlesd
38071d4279SBram Moolenaarsyn keyword fasmInstr	cmpnless cmpnltpd cmpnltps cmpnltsd cmpnltss cmpordpd cmpordps
39071d4279SBram Moolenaarsyn keyword fasmInstr	cmpordsd cmpordss cmppd cmpps cmps cmpsb cmpsd cmpss cmpsw
40071d4279SBram Moolenaarsyn keyword fasmInstr	cmpunordpd cmpunordps cmpunordsd cmpunordss cmpxchg cmpxchg8b
41071d4279SBram Moolenaarsyn keyword fasmInstr	comisd comiss cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps
42071d4279SBram Moolenaarsyn keyword fasmInstr	cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi cvtsd2si cvtsd2ss
43071d4279SBram Moolenaarsyn keyword fasmInstr	cvtsi2sd cvtsi2ss cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dq
44071d4279SBram Moolenaarsyn keyword fasmInstr	cvttps2pi cvttsd2si cvttss2si cwd cwde daa das data dec div
45071d4279SBram Moolenaarsyn keyword fasmInstr	divpd divps divsd divss else emms end enter extrn f2xm1 fabs
46071d4279SBram Moolenaarsyn keyword fasmInstr	fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb
47071d4279SBram Moolenaarsyn keyword fasmInstr	fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp
48071d4279SBram Moolenaarsyn keyword fasmInstr	fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree
49071d4279SBram Moolenaarsyn keyword fasmInstr	ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp
50071d4279SBram Moolenaarsyn keyword fasmInstr	finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv
51071d4279SBram Moolenaarsyn keyword fasmInstr	fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi
52071d4279SBram Moolenaarsyn keyword fasmInstr	fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem
53071d4279SBram Moolenaarsyn keyword fasmInstr	fprem1 fptan frndint frstor frstpm fsave fscale fsetpm fsin
54071d4279SBram Moolenaarsyn keyword fasmInstr	fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr
55071d4279SBram Moolenaarsyn keyword fasmInstr	fsubrp ftst fucom fucomi fucomip fucomp fucompp fwait fxam
56071d4279SBram Moolenaarsyn keyword fasmInstr	fxch fxrstor fxsave fxtract fyl2x fyl2xp1 haddpd haddps heap
57071d4279SBram Moolenaarsyn keyword fasmInstr	hlt hsubpd hsubps idiv if imul in inc ins insb insd insw int
58071d4279SBram Moolenaarsyn keyword fasmInstr	int3 into invd invlpg iret iretd iretw ja jae jb jbe jc jcxz
59071d4279SBram Moolenaarsyn keyword fasmInstr	je jecxz jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jnge
60071d4279SBram Moolenaarsyn keyword fasmInstr	jnl jnle jno jnp jns jnz jo jp jpe jpo js jz lahf lar lddqu
61071d4279SBram Moolenaarsyn keyword fasmInstr	ldmxcsr lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw
62071d4279SBram Moolenaarsyn keyword fasmInstr	load loadall286 loadall386 lock lods lodsb lodsd lodsw loop
63071d4279SBram Moolenaarsyn keyword fasmInstr	loopd loope looped loopew loopne loopned loopnew loopnz loopnzd
64071d4279SBram Moolenaarsyn keyword fasmInstr	loopnzw loopw loopz loopzd loopzw lsl lss ltr maskmovdqu maskmovq
65071d4279SBram Moolenaarsyn keyword fasmInstr	maxpd maxps maxsd maxss mfence minpd minps minsd minss monitor
66071d4279SBram Moolenaarsyn keyword fasmInstr	mov movapd movaps movd movddup movdq2q movdqa movdqu movhlps
67071d4279SBram Moolenaarsyn keyword fasmInstr	movhpd movhps movlhps movlpd movlps movmskpd movmskps movntdq
68071d4279SBram Moolenaarsyn keyword fasmInstr	movnti movntpd movntps movntq movq movq2dq movs movsb movsd
69071d4279SBram Moolenaarsyn keyword fasmInstr	movshdup movsldup movss movsw movsx movupd movups movzx mul
70071d4279SBram Moolenaarsyn keyword fasmInstr	mulpd mulps mulsd mulss mwait neg nop not or org orpd orps
71071d4279SBram Moolenaarsyn keyword fasmInstr	out outs outsb outsd outsw packssdw packsswb packuswb paddb
72071d4279SBram Moolenaarsyn keyword fasmInstr	paddd paddq paddsb paddsw paddusb paddusw paddw pand pandn
73071d4279SBram Moolenaarsyn keyword fasmInstr	pause pavgb pavgusb pavgw pcmpeqb pcmpeqd pcmpeqw pcmpgtb
74071d4279SBram Moolenaarsyn keyword fasmInstr	pcmpgtd pcmpgtw pextrw pf2id pf2iw pfacc pfadd pfcmpeq pfcmpge
75071d4279SBram Moolenaarsyn keyword fasmInstr	pfcmpgt pfmax pfmin pfmul pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2
76071d4279SBram Moolenaarsyn keyword fasmInstr	pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pi2fw pinsrw pmaddwd pmaxsw
77071d4279SBram Moolenaarsyn keyword fasmInstr	pmaxub pminsw pminub pmovmskb pmulhrw pmulhuw pmulhw pmullw
78071d4279SBram Moolenaarsyn keyword fasmInstr	pmuludq pop popa popad popaw popd popf popfd popfw popw por
79071d4279SBram Moolenaarsyn keyword fasmInstr	prefetch prefetchnta prefetcht0 prefetcht1 prefetcht2 prefetchw
80071d4279SBram Moolenaarsyn keyword fasmInstr	psadbw pshufd pshufhw pshuflw pshufw pslld pslldq psllq psllw
81071d4279SBram Moolenaarsyn keyword fasmInstr	psrad psraw psrld psrldq psrlq psrlw psubb psubd psubq psubsb
82071d4279SBram Moolenaarsyn keyword fasmInstr	psubsw psubusb psubusw psubw pswapd punpckhbw punpckhdq punpckhqdq
83071d4279SBram Moolenaarsyn keyword fasmInstr	punpckhwd punpcklbw punpckldq punpcklqdq punpcklwd push pusha
84071d4279SBram Moolenaarsyn keyword fasmInstr	pushad pushaw pushd pushf pushfd pushfw pushw pxor rcl rcpps
85071d4279SBram Moolenaarsyn keyword fasmInstr	rcpss rcr rdmsr rdpmc rdtsc rep repe repne repnz repz ret
86071d4279SBram Moolenaarsyn keyword fasmInstr	retd retf retfd retfw retn retnd retnw retw rol ror rsm rsqrtps
87071d4279SBram Moolenaarsyn keyword fasmInstr	rsqrtss sahf sal salc sar sbb scas scasb scasd scasw seta
88071d4279SBram Moolenaarsyn keyword fasmInstr	setae setalc setb setbe setc sete setg setge setl setle setna
89071d4279SBram Moolenaarsyn keyword fasmInstr	setnae setnb setnbe setnc setne setng setnge setnl setnle
90071d4279SBram Moolenaarsyn keyword fasmInstr	setno setnp setns setnz seto setp setpe setpo sets setz sfence
91071d4279SBram Moolenaarsyn keyword fasmInstr	sgdt shl shld shr shrd shufpd shufps sidt sldt smsw sqrtpd
92071d4279SBram Moolenaarsyn keyword fasmInstr	sqrtps sqrtsd sqrtss stc std sti stmxcsr store stos stosb
93071d4279SBram Moolenaarsyn keyword fasmInstr	stosd stosw str sub subpd subps subsd subss sysenter sysexit
94071d4279SBram Moolenaarsyn keyword fasmInstr	test ucomisd ucomiss ud2 unpckhpd unpckhps unpcklpd unpcklps
95071d4279SBram Moolenaarsyn keyword fasmInstr	verr verw wait wbinvd wrmsr xadd xchg xlat xlatb xor xorpd
96071d4279SBram Moolenaarsyn keyword fasmPreprocess 	common equ fix forward include local macro purge restore
97071d4279SBram Moolenaarsyn keyword fasmPreprocess	reverse struc
98071d4279SBram Moolenaarsyn keyword fasmDirective 	align binary code coff console discardable display dll
99071d4279SBram Moolenaarsyn keyword fasmDirective	elf entry executable export extern far fixups format gui
100071d4279SBram Moolenaarsyn keyword fasmDirective	import label ms mz native near notpageable pe public readable
101071d4279SBram Moolenaarsyn keyword fasmDirective	repeat resource section segment shareable stack times
102db7207e6SBram Moolenaarsyn keyword fasmDirective	use16 use32 virtual wdm writable writeable
103071d4279SBram Moolenaarsyn keyword fasmOperator 	as at defined eq eqtype from mod on ptr rva used
104071d4279SBram Moolenaar
105071d4279SBram Moolenaarsyn match	fasmNumericOperator	"[+-/*]"
106071d4279SBram Moolenaarsyn match	fasmLogicalOperator	"[=|&~<>]\|<=\|>=\|<>"
107071d4279SBram Moolenaar" numbers
108071d4279SBram Moolenaarsyn match	fasmBinaryNumber	"\<[01]\+b\>"
109071d4279SBram Moolenaarsyn match	fasmHexNumber		"\<\d\x*h\>"
110071d4279SBram Moolenaarsyn match	fasmHexNumber		"\<\(0x\|$\)\x*\>"
111071d4279SBram Moolenaarsyn match	fasmFPUNumber		"\<\d\+\(\.\d*\)\=\(e[-+]\=\d*\)\=\>"
112071d4279SBram Moolenaarsyn match	fasmOctalNumber		"\<\(0\o\+o\=\|\o\+o\)\>"
113071d4279SBram Moolenaarsyn match	fasmDecimalNumber	"\<\(0\|[1-9]\d*\)\>"
114071d4279SBram Moolenaarsyn region	fasmComment		start=";" end="$"
115071d4279SBram Moolenaarsyn region	fasmString		start="\"" end="\"\|$"
116071d4279SBram Moolenaarsyn region	fasmString		start="'" end="'\|$"
117071d4279SBram Moolenaarsyn match	fasmSymbol		"[()|\[\]:]"
118071d4279SBram Moolenaarsyn match	fasmSpecial		"[#?%$,]"
119071d4279SBram Moolenaarsyn match	fasmLabel		"^\s*[^; \t]\+:"
120071d4279SBram Moolenaar
121071d4279SBram Moolenaarhi def link	fasmAddressSizes	type
122071d4279SBram Moolenaarhi def link	fasmNumericOperator	fasmOperator
123071d4279SBram Moolenaarhi def link	fasmLogicalOperator	fasmOperator
124071d4279SBram Moolenaar
125071d4279SBram Moolenaarhi def link	fasmBinaryNumber	fasmNumber
126071d4279SBram Moolenaarhi def link	fasmHexNumber		fasmNumber
127071d4279SBram Moolenaarhi def link	fasmFPUNumber		fasmNumber
128071d4279SBram Moolenaarhi def link	fasmOctalNumber		fasmNumber
129071d4279SBram Moolenaarhi def link	fasmDecimalNumber	fasmNumber
130071d4279SBram Moolenaar
131071d4279SBram Moolenaarhi def link	fasmSymbols		fasmRegister
132071d4279SBram Moolenaarhi def link	fasmPreprocess		fasmDirective
133071d4279SBram Moolenaar
134071d4279SBram Moolenaar"  link to standard syn groups so the 'colorschemes' work:
135071d4279SBram Moolenaarhi def link	fasmOperator operator
136071d4279SBram Moolenaarhi def link	fasmComment  comment
137071d4279SBram Moolenaarhi def link	fasmDirective	preproc
138071d4279SBram Moolenaarhi def link	fasmRegister  type
139071d4279SBram Moolenaarhi def link	fasmNumber   constant
140071d4279SBram Moolenaarhi def link	fasmSymbol structure
141071d4279SBram Moolenaarhi def link	fasmString  String
142071d4279SBram Moolenaarhi def link	fasmSpecial	special
143071d4279SBram Moolenaarhi def link	fasmInstr keyword
144071d4279SBram Moolenaarhi def link	fasmLabel label
145071d4279SBram Moolenaarhi def link	fasmPrefix preproc
146071d4279SBram Moolenaarlet b:current_syntax = "fasm"
147db7207e6SBram Moolenaar
148db7207e6SBram Moolenaarlet &cpo = s:cpo_save
149db7207e6SBram Moolenaarunlet s:cpo_save
150db7207e6SBram Moolenaar
151071d4279SBram Moolenaar" vim: ts=8 sw=8 :
152