Mercurial > vim
annotate runtime/syntax/fasm.vim @ 25373:d5b80262eac9
Added tag v8.2.3223 for changeset c63a2d24b7e2f22c121fa8bf123bfbb59ea1c9fd
author | Bram Moolenaar <Bram@vim.org> |
---|---|
date | Sun, 25 Jul 2021 20:30:05 +0200 |
parents | 43efa4f5a8ea |
children |
rev | line source |
---|---|
7 | 1 " Vim syntax file |
2 " Language: Flat Assembler (FASM) | |
3 " Maintainer: Ron Aaron <ron@ronware.org> | |
3371 | 4 " Last Change: 2012/02/13 |
7 | 5 " Vim URL: http://www.vim.org/lang.html |
6 " FASM Home: http://flatassembler.net/ | |
3371 | 7 " FASM Version: 1.56 |
7 | 8 |
10048
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
3371
diff
changeset
|
9 " quit when a syntax file was already loaded |
43efa4f5a8ea
commit https://github.com/vim/vim/commit/89bcfda6834aba724d12554a34b9ed49f5789fd5
Christian Brabandt <cb@256bit.org>
parents:
3371
diff
changeset
|
10 if exists("b:current_syntax") |
7 | 11 finish |
12 endif | |
13 | |
3371 | 14 let s:cpo_save = &cpo |
15 set cpo&vim | |
16 | |
7 | 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 | |
3371 | 102 syn keyword fasmDirective use16 use32 virtual wdm writable writeable |
7 | 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" | |
3371 | 147 |
148 let &cpo = s:cpo_save | |
149 unlet s:cpo_save | |
150 | |
7 | 151 " vim: ts=8 sw=8 : |