" Vim syntax file" Language: Flat Assembler (FASM)" Maintainer: Ron Aaron <ron@ronware.org>" Last Change: 2004 May 16" Vim URL: http://www.vim.org/lang.html" FASM Home: http://flatassembler.net/" FASM Version: 1.52 if version < 600 syntax clearelseif exists("b:current_syntax") finishendif 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 cr6syn keyword fasmRegister cr7 cs cx dh di dl dr0 dr1 dr2 dr3 dr4 dr5 dr6 dr7 ds dxsyn keyword fasmRegister eax ebp ebx ecx edi edx es esi esp fs gs mm0 mm1 mm2 mm3syn keyword fasmRegister mm4 mm5 mm6 mm7 si sp ss st st0 st1 st2 st3 st4 st5 st6syn keyword fasmRegister st7 tr0 tr1 tr2 tr3 tr4 tr5 tr6 tr7 xmm0 xmm1 xmm2 xmm3syn keyword fasmRegister xmm4 xmm5 xmm6 xmm7syn keyword fasmAddressSizes byte dqword dword fword pword qword tword wordsyn keyword fasmDataDirectives db dd df dp dq dt du dw file rb rd rf rp rq rt rwsyn keyword fasmInstr aaa aad aam aas adc add addpd addps addsd addss addsubpdsyn keyword fasmInstr addsubps and andnpd andnps andpd andps arpl bound bsf bsrsyn keyword fasmInstr bswap bt btc btr bts call cbw cdq clc cld clflush cli cltssyn keyword fasmInstr cmc cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovlsyn keyword fasmInstr cmovle cmovna cmovnae cmovnb cmovnbe cmovnc cmovne cmovngsyn keyword fasmInstr cmovnge cmovnl cmovnle cmovno cmovnp cmovns cmovnz cmovo cmovpsyn keyword fasmInstr cmovpe cmovpo cmovs cmovz cmp cmpeqpd cmpeqps cmpeqsd cmpeqsssyn keyword fasmInstr cmplepd cmpleps cmplesd cmpless cmpltpd cmpltps cmpltsd cmpltsssyn keyword fasmInstr cmpneqpd cmpneqps cmpneqsd cmpneqss cmpnlepd cmpnleps cmpnlesdsyn keyword fasmInstr cmpnless cmpnltpd cmpnltps cmpnltsd cmpnltss cmpordpd cmpordpssyn keyword fasmInstr cmpordsd cmpordss cmppd cmpps cmps cmpsb cmpsd cmpss cmpswsyn keyword fasmInstr cmpunordpd cmpunordps cmpunordsd cmpunordss cmpxchg cmpxchg8bsyn keyword fasmInstr comisd comiss cpuid cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2pssyn keyword fasmInstr cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi cvtsd2si cvtsd2sssyn keyword fasmInstr cvtsi2sd cvtsi2ss cvtss2sd cvtss2si cvttpd2dq cvttpd2pi cvttps2dqsyn keyword fasmInstr cvttps2pi cvttsd2si cvttss2si cwd cwde daa das data dec divsyn keyword fasmInstr divpd divps divsd divss else emms end enter extrn f2xm1 fabssyn keyword fasmInstr fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnbsyn keyword fasmInstr fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcomppsyn keyword fasmInstr fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffreesyn keyword fasmInstr ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstpsyn keyword fasmInstr finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenvsyn keyword fasmInstr fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisisyn keyword fasmInstr fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fpremsyn keyword fasmInstr fprem1 fptan frndint frstor frstpm fsave fscale fsetpm fsinsyn keyword fasmInstr fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubrsyn keyword fasmInstr fsubrp ftst fucom fucomi fucomip fucomp fucompp fwait fxamsyn keyword fasmInstr fxch fxrstor fxsave fxtract fyl2x fyl2xp1 haddpd haddps heapsyn keyword fasmInstr hlt hsubpd hsubps idiv if imul in inc ins insb insd insw intsyn keyword fasmInstr int3 into invd invlpg iret iretd iretw ja jae jb jbe jc jcxzsyn keyword fasmInstr je jecxz jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng jngesyn keyword fasmInstr jnl jnle jno jnp jns jnz jo jp jpe jpo js jz lahf lar lddqusyn keyword fasmInstr ldmxcsr lds lea leave les lfence lfs lgdt lgs lidt lldt lmswsyn keyword fasmInstr load loadall286 loadall386 lock lods lodsb lodsd lodsw loopsyn keyword fasmInstr loopd loope looped loopew loopne loopned loopnew loopnz loopnzdsyn keyword fasmInstr loopnzw loopw loopz loopzd loopzw lsl lss ltr maskmovdqu maskmovqsyn keyword fasmInstr maxpd maxps maxsd maxss mfence minpd minps minsd minss monitorsyn keyword fasmInstr mov movapd movaps movd movddup movdq2q movdqa movdqu movhlpssyn keyword fasmInstr movhpd movhps movlhps movlpd movlps movmskpd movmskps movntdqsyn keyword fasmInstr movnti movntpd movntps movntq movq movq2dq movs movsb movsdsyn keyword fasmInstr movshdup movsldup movss movsw movsx movupd movups movzx mulsyn keyword fasmInstr mulpd mulps mulsd mulss mwait neg nop not or org orpd orpssyn keyword fasmInstr out outs outsb outsd outsw packssdw packsswb packuswb paddbsyn keyword fasmInstr paddd paddq paddsb paddsw paddusb paddusw paddw pand pandnsyn keyword fasmInstr pause pavgb pavgusb pavgw pcmpeqb pcmpeqd pcmpeqw pcmpgtbsyn keyword fasmInstr pcmpgtd pcmpgtw pextrw pf2id pf2iw pfacc pfadd pfcmpeq pfcmpgesyn keyword fasmInstr pfcmpgt pfmax pfmin pfmul pfnacc pfpnacc pfrcp pfrcpit1 pfrcpit2syn keyword fasmInstr pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pi2fw pinsrw pmaddwd pmaxswsyn keyword fasmInstr pmaxub pminsw pminub pmovmskb pmulhrw pmulhuw pmulhw pmullwsyn keyword fasmInstr pmuludq pop popa popad popaw popd popf popfd popfw popw porsyn keyword fasmInstr prefetch prefetchnta prefetcht0 prefetcht1 prefetcht2 prefetchwsyn keyword fasmInstr psadbw pshufd pshufhw pshuflw pshufw pslld pslldq psllq psllwsyn keyword fasmInstr psrad psraw psrld psrldq psrlq psrlw psubb psubd psubq psubsbsyn keyword fasmInstr psubsw psubusb psubusw psubw pswapd punpckhbw punpckhdq punpckhqdqsyn keyword fasmInstr punpckhwd punpcklbw punpckldq punpcklqdq punpcklwd push pushasyn keyword fasmInstr pushad pushaw pushd pushf pushfd pushfw pushw pxor rcl rcppssyn keyword fasmInstr rcpss rcr rdmsr rdpmc rdtsc rep repe repne repnz repz retsyn keyword fasmInstr retd retf retfd retfw retn retnd retnw retw rol ror rsm rsqrtpssyn keyword fasmInstr rsqrtss sahf sal salc sar sbb scas scasb scasd scasw setasyn keyword fasmInstr setae setalc setb setbe setc sete setg setge setl setle setnasyn keyword fasmInstr setnae setnb setnbe setnc setne setng setnge setnl setnlesyn keyword fasmInstr setno setnp setns setnz seto setp setpe setpo sets setz sfencesyn keyword fasmInstr sgdt shl shld shr shrd shufpd shufps sidt sldt smsw sqrtpdsyn keyword fasmInstr sqrtps sqrtsd sqrtss stc std sti stmxcsr store stos stosbsyn keyword fasmInstr stosd stosw str sub subpd subps subsd subss sysenter sysexitsyn keyword fasmInstr test ucomisd ucomiss ud2 unpckhpd unpckhps unpcklpd unpcklpssyn keyword fasmInstr verr verw wait wbinvd wrmsr xadd xchg xlat xlatb xor xorpdsyn keyword fasmPreprocess common equ fix forward include local macro purge restoresyn keyword fasmPreprocess reverse strucsyn keyword fasmDirective align binary code coff console discardable display dllsyn keyword fasmDirective elf entry executable export extern far fixups format guisyn keyword fasmDirective import label ms mz native near notpageable pe public readablesyn keyword fasmDirective repeat resource section segment shareable stack timessyn keyword fasmDirective use16 use32 virtual wdm writeablesyn keyword fasmOperator as at defined eq eqtype from mod on ptr rva used syn match fasmNumericOperator "[+-/*]"syn match fasmLogicalOperator "[=|&~<>]\|<=\|>=\|<>"" numberssyn 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 typehi def link fasmNumericOperator fasmOperatorhi def link fasmLogicalOperator fasmOperator hi def link fasmBinaryNumber fasmNumberhi def link fasmHexNumber fasmNumberhi def link fasmFPUNumber fasmNumberhi def link fasmOctalNumber fasmNumberhi def link fasmDecimalNumber fasmNumber hi def link fasmSymbols fasmRegisterhi def link fasmPreprocess fasmDirective " link to standard syn groups so the 'colorschemes' work:hi def link fasmOperator operatorhi def link fasmComment commenthi def link fasmDirective preprochi def link fasmRegister typehi def link fasmNumber constanthi def link fasmSymbol structurehi def link fasmString Stringhi def link fasmSpecial specialhi def link fasmInstr keywordhi def link fasmLabel labelhi def link fasmPrefix preproclet b:current_syntax = "fasm"" vim: ts=8 sw=8 :
" Vim syntax file
" Language: Flat Assembler (FASM)
" Maintainer: Ron Aaron <ron@ronware.org>
" Last Change: 2004 May 16
" Vim URL: http://www.vim.org/lang.html
" FASM Home: http://flatassembler.net/
" FASM Version: 1.52
if version < 600
syntax clear
elseif exists("b:current_syntax")
finish
endif
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 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"
" vim: ts=8 sw=8 :