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