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 :