neovim

Neovim text editor
git clone https://git.dasho.dev/neovim.git
Log | Files | Refs | README

fasm.vim (8757B)


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