1" Vim syntax file 2" Language: Microsoft Macro Assembler (80x86) 3" Orig Author: Rob Brady <[email protected]> 4" Maintainer: Wu Yongwei <[email protected]> 5" Last Change: $Date: 2013/11/13 11:49:24 $ 6" $Revision: 1.48 $ 7 8" Quit when a syntax file was already loaded 9if exists("b:current_syntax") 10 finish 11endif 12 13let s:cpo_save = &cpo 14set cpo&vim 15 16syn case ignore 17 18 19syn match masmIdentifier "[@a-z_$?][@a-z0-9_$?]*" 20syn match masmLabel "^\s*[@a-z_$?][@a-z0-9_$?]*:"he=e-1 21 22syn match masmDecimal "[-+]\?\d\+[dt]\?" 23syn match masmBinary "[-+]\?[0-1]\+[by]" "put this before hex or 0bfh dies! 24syn match masmOctal "[-+]\?[0-7]\+[oq]" 25syn match masmHexadecimal "[-+]\?[0-9]\x*h" 26syn match masmFloatRaw "[-+]\?[0-9]\x*r" 27syn match masmFloat "[-+]\?\d\+\.\(\d*\(E[-+]\?\d\+\)\?\)\?" 28 29syn match masmComment ";.*" contains=@Spell 30syn region masmComment start=+COMMENT\s*\z(\S\)+ end=+\z1.*+ contains=@Spell 31syn region masmString start=+'+ end=+'+ oneline contains=@Spell 32syn region masmString start=+"+ end=+"+ oneline contains=@Spell 33 34syn region masmTitleArea start=+\<TITLE\s+lc=5 start=+\<SUBTITLE\s+lc=8 start=+\<SUBTTL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmTitle 35syn region masmTextArea start=+\<NAME\s+lc=4 start=+\<INCLUDE\s+lc=7 start=+\<INCLUDELIB\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmText 36syn match masmTitle "[^\t ;]\([^;]*[^\t ;]\)\?" contained contains=@Spell 37syn match masmText "[^\t ;]\([^;]*[^\t ;]\)\?" contained 38 39syn region masmOptionOpt start=+\<OPTION\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption 40syn region masmContextOpt start=+\<PUSHCONTEXT\s+lc=11 start=+\<POPCONTEXT\s+lc=10 end=+$+ end=+;+me=e-1 contains=masmOption 41syn region masmModelOpt start=+\.MODEL\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmType 42syn region masmSegmentOpt start=+\<SEGMENT\s+lc=7 end=+$+ end=+;+me=e-1 contains=masmOption,masmString 43syn region masmProcOpt start=+\<PROC\s+lc=4 end=+$+ end=+;+me=e-1 contains=masmOption,masmType,masmRegister,masmIdentifier 44syn region masmAssumeOpt start=+\<ASSUME\s+lc=6 end=+$+ end=+;+me=e-1 contains=masmOption,masmOperator,masmType,masmRegister,masmIdentifier 45syn region masmExpression start=+\.IF\s+lc=3 start=+\.WHILE\s+lc=6 start=+\.UNTIL\s+lc=6 start=+\<IF\s+lc=2 start=+\<IF2\s+lc=3 start=+\<ELSEIF\s+lc=6 start=+\<ELSEIF2\s+lc=7 start=+\<REPEAT\s+lc=6 start=+\<WHILE\s+lc=5 end=+$+ end=+;+me=e-1 contains=masmType,masmOperator,masmRegister,masmIdentifier,masmDecimal,masmBinary,masmHexadecimal,masmFloatRaw,masmString 46 47syn keyword masmOption TINY SMALL COMPACT MEDIUM LARGE HUGE contained 48syn keyword masmOption NEARSTACK FARSTACK contained 49syn keyword masmOption PUBLIC PRIVATE STACK COMMON MEMORY AT contained 50syn keyword masmOption BYTE WORD DWORD PARA PAGE contained 51syn keyword masmOption USE16 USE32 FLAT contained 52syn keyword masmOption INFO READ WRITE EXECUTE SHARED contained 53syn keyword masmOption NOPAGE NOCACHE DISCARD contained 54syn keyword masmOption READONLY USES FRAME contained 55syn keyword masmOption CASEMAP DOTNAME NODOTNAME EMULATOR contained 56syn keyword masmOption NOEMULATOR EPILOGUE EXPR16 EXPR32 contained 57syn keyword masmOption LANGUAGE LJMP NOLJMP M510 NOM510 contained 58syn keyword masmOption NOKEYWORD NOSIGNEXTEND OFFSET contained 59syn keyword masmOption OLDMACROS NOOLDMACROS OLDSTRUCTS contained 60syn keyword masmOption NOOLDSTRUCTS PROC PROLOGUE READONLY contained 61syn keyword masmOption NOREADONLY SCOPED NOSCOPED SEGMENT contained 62syn keyword masmOption SETIF2 contained 63syn keyword masmOption ABS ALL ASSUMES CPU ERROR EXPORT contained 64syn keyword masmOption FORCEFRAME LISTING LOADDS NONE contained 65syn keyword masmOption NONUNIQUE NOTHING OS_DOS RADIX REQ contained 66syn keyword masmType STDCALL SYSCALL C BASIC FORTRAN PASCAL 67syn keyword masmType PTR NEAR FAR NEAR16 FAR16 NEAR32 FAR32 68syn keyword masmType REAL4 REAL8 REAL10 BYTE SBYTE TBYTE 69syn keyword masmType WORD DWORD QWORD FWORD SWORD SDWORD 70syn keyword masmOperator AND NOT OR SHL SHR XOR MOD DUP 71syn keyword masmOperator EQ GE GT LE LT NE 72syn keyword masmOperator LROFFSET SEG LENGTH LENGTHOF SIZE SIZEOF 73syn keyword masmOperator CODEPTR DATAPTR FAR NEAR SHORT THIS TYPE 74syn keyword masmOperator HIGH HIGHWORD LOW LOWWORD OPATTR MASK WIDTH 75syn match masmOperator "OFFSET\(\sFLAT:\)\?" 76syn match masmOperator ".TYPE\>" 77syn match masmOperator "CARRY?" 78syn match masmOperator "OVERFLOW?" 79syn match masmOperator "PARITY?" 80syn match masmOperator "SIGN?" 81syn match masmOperator "ZERO?" 82syn keyword masmDirective ALIAS ASSUME CATSTR COMM DB DD DF DOSSEG DQ DT 83syn keyword masmDirective DW ECHO ELSE ELSEIF ELSEIF1 ELSEIF2 ELSEIFB 84syn keyword masmDirective ELSEIFDEF ELSEIFDIF ELSEIFDIFI ELSEIFE 85syn keyword masmDirective ELSEIFIDN ELSEIFIDNI ELSEIFNB ELSEIFNDEF END 86syn keyword masmDirective ENDIF ENDM ENDP ENDS EQU EVEN EXITM EXTERN 87syn keyword masmDirective EXTERNDEF EXTRN FOR FORC GOTO GROUP IF IF1 IF2 88syn keyword masmDirective IFB IFDEF IFDIF IFDIFI IFE IFIDN IFIDNI IFNB 89syn keyword masmDirective IFNDEF INCLUDE INCLUDELIB INSTR INVOKE IRP 90syn keyword masmDirective IRPC LABEL LOCAL MACRO NAME OPTION ORG PAGE 91syn keyword masmDirective POPCONTEXT PROC PROTO PUBLIC PURGE PUSHCONTEXT 92syn keyword masmDirective RECORD REPEAT REPT SEGMENT SIZESTR STRUC 93syn keyword masmDirective STRUCT SUBSTR SUBTITLE SUBTTL TEXTEQU TITLE 94syn keyword masmDirective TYPEDEF UNION WHILE 95syn match masmDirective "\.8086\>" 96syn match masmDirective "\.8087\>" 97syn match masmDirective "\.NO87\>" 98syn match masmDirective "\.186\>" 99syn match masmDirective "\.286\>" 100syn match masmDirective "\.286C\>" 101syn match masmDirective "\.286P\>" 102syn match masmDirective "\.287\>" 103syn match masmDirective "\.386\>" 104syn match masmDirective "\.386C\>" 105syn match masmDirective "\.386P\>" 106syn match masmDirective "\.387\>" 107syn match masmDirective "\.486\>" 108syn match masmDirective "\.486P\>" 109syn match masmDirective "\.586\>" 110syn match masmDirective "\.586P\>" 111syn match masmDirective "\.686\>" 112syn match masmDirective "\.686P\>" 113syn match masmDirective "\.K3D\>" 114syn match masmDirective "\.MMX\>" 115syn match masmDirective "\.XMM\>" 116syn match masmDirective "\.ALPHA\>" 117syn match masmDirective "\.DOSSEG\>" 118syn match masmDirective "\.SEQ\>" 119syn match masmDirective "\.CODE\>" 120syn match masmDirective "\.CONST\>" 121syn match masmDirective "\.DATA\>" 122syn match masmDirective "\.DATA?" 123syn match masmDirective "\.EXIT\>" 124syn match masmDirective "\.FARDATA\>" 125syn match masmDirective "\.FARDATA?" 126syn match masmDirective "\.MODEL\>" 127syn match masmDirective "\.STACK\>" 128syn match masmDirective "\.STARTUP\>" 129syn match masmDirective "\.IF\>" 130syn match masmDirective "\.ELSE\>" 131syn match masmDirective "\.ELSEIF\>" 132syn match masmDirective "\.ENDIF\>" 133syn match masmDirective "\.REPEAT\>" 134syn match masmDirective "\.UNTIL\>" 135syn match masmDirective "\.UNTILCXZ\>" 136syn match masmDirective "\.WHILE\>" 137syn match masmDirective "\.ENDW\>" 138syn match masmDirective "\.BREAK\>" 139syn match masmDirective "\.CONTINUE\>" 140syn match masmDirective "\.ERR\>" 141syn match masmDirective "\.ERR1\>" 142syn match masmDirective "\.ERR2\>" 143syn match masmDirective "\.ERRB\>" 144syn match masmDirective "\.ERRDEF\>" 145syn match masmDirective "\.ERRDIF\>" 146syn match masmDirective "\.ERRDIFI\>" 147syn match masmDirective "\.ERRE\>" 148syn match masmDirective "\.ERRIDN\>" 149syn match masmDirective "\.ERRIDNI\>" 150syn match masmDirective "\.ERRNB\>" 151syn match masmDirective "\.ERRNDEF\>" 152syn match masmDirective "\.ERRNZ\>" 153syn match masmDirective "\.LALL\>" 154syn match masmDirective "\.SALL\>" 155syn match masmDirective "\.XALL\>" 156syn match masmDirective "\.LFCOND\>" 157syn match masmDirective "\.SFCOND\>" 158syn match masmDirective "\.TFCOND\>" 159syn match masmDirective "\.CREF\>" 160syn match masmDirective "\.NOCREF\>" 161syn match masmDirective "\.XCREF\>" 162syn match masmDirective "\.LIST\>" 163syn match masmDirective "\.NOLIST\>" 164syn match masmDirective "\.XLIST\>" 165syn match masmDirective "\.LISTALL\>" 166syn match masmDirective "\.LISTIF\>" 167syn match masmDirective "\.NOLISTIF\>" 168syn match masmDirective "\.LISTMACRO\>" 169syn match masmDirective "\.NOLISTMACRO\>" 170syn match masmDirective "\.LISTMACROALL\>" 171syn match masmDirective "\.FPO\>" 172syn match masmDirective "\.RADIX\>" 173syn match masmDirective "\.SAFESEH\>" 174syn match masmDirective "%OUT\>" 175syn match masmDirective "ALIGN\>" 176syn match masmOption "ALIGN([0-9]\+)" 177 178syn keyword masmRegister AX BX CX DX SI DI BP SP 179syn keyword masmRegister CS DS SS ES FS GS 180syn keyword masmRegister AH BH CH DH AL BL CL DL 181syn keyword masmRegister EAX EBX ECX EDX ESI EDI EBP ESP 182syn keyword masmRegister CR0 CR2 CR3 CR4 183syn keyword masmRegister DR0 DR1 DR2 DR3 DR6 DR7 184syn keyword masmRegister TR3 TR4 TR5 TR6 TR7 185syn match masmRegister "ST([0-7])" 186 187" x86-64 registers 188syn keyword masmRegister RAX RBX RCX RDX RSI RDI RBP RSP 189syn keyword masmRegister R8 R9 R10 R11 R12 R13 R14 R15 190syn keyword masmRegister R8D R9D R10D R11D R12D R13D R14D R15D 191syn keyword masmRegister R8W R9W R10W R11W R12W R13W R14W R15W 192syn keyword masmRegister R8B R9B R10B R11B R12B R13B R14B R15B 193 194" SSE/AVX registers 195syn match masmRegister "\(X\|Y\)MM[0-9]\>" 196syn match masmRegister "\(X\|Y\)MM1[0-5]\>" 197 198" Instruction prefixes 199syn keyword masmOpcode LOCK REP REPE REPNE REPNZ REPZ 200 201" 8086/8088 opcodes 202syn keyword masmOpcode AAA AAD AAM AAS ADC ADD AND CALL CBW CLC CLD 203syn keyword masmOpcode CLI CMC CMP CMPS CMPSB CMPSW CWD DAA DAS DEC 204syn keyword masmOpcode DIV ESC HLT IDIV IMUL IN INC INT INTO IRET 205syn keyword masmOpcode JCXZ JMP LAHF LDS LEA LES LODS LODSB LODSW 206syn keyword masmOpcode LOOP LOOPE LOOPEW LOOPNE LOOPNEW LOOPNZ 207syn keyword masmOpcode LOOPNZW LOOPW LOOPZ LOOPZW MOV MOVS MOVSB 208syn keyword masmOpcode MOVSW MUL NEG NOP NOT OR OUT POP POPF PUSH 209syn keyword masmOpcode PUSHF RCL RCR RET RETF RETN ROL ROR SAHF SAL 210syn keyword masmOpcode SAR SBB SCAS SCASB SCASW SHL SHR STC STD STI 211syn keyword masmOpcode STOS STOSB STOSW SUB TEST WAIT XCHG XLAT XLATB 212syn keyword masmOpcode XOR 213syn match masmOpcode "J\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" 214 215" 80186 opcodes 216syn keyword masmOpcode BOUND ENTER INS INSB INSW LEAVE OUTS OUTSB 217syn keyword masmOpcode OUTSW POPA PUSHA PUSHW 218 219" 80286 opcodes 220syn keyword masmOpcode ARPL LAR LSL SGDT SIDT SLDT SMSW STR VERR VERW 221 222" 80286/80386 privileged opcodes 223syn keyword masmOpcode CLTS LGDT LIDT LLDT LMSW LTR 224 225" 80386 opcodes 226syn keyword masmOpcode BSF BSR BT BTC BTR BTS CDQ CMPSD CWDE INSD 227syn keyword masmOpcode IRETD IRETDF IRETF JECXZ LFS LGS LODSD LOOPD 228syn keyword masmOpcode LOOPED LOOPNED LOOPNZD LOOPZD LSS MOVSD MOVSX 229syn keyword masmOpcode MOVZX OUTSD POPAD POPFD PUSHAD PUSHD PUSHFD 230syn keyword masmOpcode SCASD SHLD SHRD STOSD 231syn match masmOpcode "SET\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" 232 233" 80486 opcodes 234syn keyword masmOpcode BSWAP CMPXCHG INVD INVLPG WBINVD XADD 235 236" Floating-point opcodes as of 487 237syn keyword masmOpFloat F2XM1 FABS FADD FADDP FBLD FBSTP FCHS FCLEX 238syn keyword masmOpFloat FNCLEX FCOM FCOMP FCOMPP FCOS FDECSTP FDISI 239syn keyword masmOpFloat FNDISI FDIV FDIVP FDIVR FDIVRP FENI FNENI 240syn keyword masmOpFloat FFREE FIADD FICOM FICOMP FIDIV FIDIVR FILD 241syn keyword masmOpFloat FIMUL FINCSTP FINIT FNINIT FIST FISTP FISUB 242syn keyword masmOpFloat FISUBR FLD FLDCW FLDENV FLDLG2 FLDLN2 FLDL2E 243syn keyword masmOpFloat FLDL2T FLDPI FLDZ FLD1 FMUL FMULP FNOP FPATAN 244syn keyword masmOpFloat FPREM FPREM1 FPTAN FRNDINT FRSTOR FSAVE FNSAVE 245syn keyword masmOpFloat FSCALE FSETPM FSIN FSINCOS FSQRT FST FSTCW 246syn keyword masmOpFloat FNSTCW FSTENV FNSTENV FSTP FSTSW FNSTSW FSUB 247syn keyword masmOpFloat FSUBP FSUBR FSUBRP FTST FUCOM FUCOMP FUCOMPP 248syn keyword masmOpFloat FWAIT FXAM FXCH FXTRACT FYL2X FYL2XP1 249 250" Floating-point opcodes in Pentium and later processors 251syn keyword masmOpFloat FCMOVE FCMOVNE FCMOVB FCMOVBE FCMOVNB FCMOVNBE 252syn keyword masmOpFloat FCMOVU FCMOVNU FCOMI FUCOMI FCOMIP FUCOMIP 253syn keyword masmOpFloat FXSAVE FXRSTOR 254 255" MMX opcodes (Pentium w/ MMX, Pentium II, and later) 256syn keyword masmOpcode MOVD MOVQ PACKSSWB PACKSSDW PACKUSWB 257syn keyword masmOpcode PUNPCKHBW PUNPCKHWD PUNPCKHDQ 258syn keyword masmOpcode PUNPCKLBW PUNPCKLWD PUNPCKLDQ 259syn keyword masmOpcode PADDB PADDW PADDD PADDSB PADDSW PADDUSB PADDUSW 260syn keyword masmOpcode PSUBB PSUBW PSUBD PSUBSB PSUBSW PSUBUSB PSUBUSW 261syn keyword masmOpcode PMULHW PMULLW PMADDWD 262syn keyword masmOpcode PCMPEQB PCMPEQW PCMPEQD PCMPGTB PCMPGTW PCMPGTD 263syn keyword masmOpcode PAND PANDN POR PXOR 264syn keyword masmOpcode PSLLW PSLLD PSLLQ PSRLW PSRLD PSRLQ PSRAW PSRAD 265syn keyword masmOpcode EMMS 266 267" SSE opcodes (Pentium III and later) 268syn keyword masmOpcode MOVAPS MOVUPS MOVHPS MOVHLPS MOVLPS MOVLHPS 269syn keyword masmOpcode MOVMSKPS MOVSS 270syn keyword masmOpcode ADDPS ADDSS SUBPS SUBSS MULPS MULSS DIVPS DIVSS 271syn keyword masmOpcode RCPPS RCPSS SQRTPS SQRTSS RSQRTPS RSQRTSS 272syn keyword masmOpcode MAXPS MAXSS MINPS MINSS 273syn keyword masmOpcode CMPPS CMPSS COMISS UCOMISS 274syn keyword masmOpcode ANDPS ANDNPS ORPS XORPS 275syn keyword masmOpcode SHUFPS UNPCKHPS UNPCKLPS 276syn keyword masmOpcode CVTPI2PS CVTSI2SS CVTPS2PI CVTTPS2PI 277syn keyword masmOpcode CVTSS2SI CVTTSS2SI 278syn keyword masmOpcode LDMXCSR STMXCSR 279syn keyword masmOpcode PAVGB PAVGW PEXTRW PINSRW PMAXUB PMAXSW 280syn keyword masmOpcode PMINUB PMINSW PMOVMSKB PMULHUW PSADBW PSHUFW 281syn keyword masmOpcode MASKMOVQ MOVNTQ MOVNTPS SFENCE 282syn keyword masmOpcode PREFETCHT0 PREFETCHT1 PREFETCHT2 PREFETCHNTA 283 284" SSE2 opcodes (Pentium 4 and later) 285syn keyword masmOpcode MOVAPD MOVUPD MOVHPD MOVLPD MOVMSKPD MOVSD 286syn keyword masmOpcode ADDPD ADDSD SUBPD SUBSD MULPD MULSD DIVPD DIVSD 287syn keyword masmOpcode SQRTPD SQRTSD MAXPD MAXSD MINPD MINSD 288syn keyword masmOpcode ANDPD ANDNPD ORPD XORPD 289syn keyword masmOpcode CMPPD CMPSD COMISD UCOMISD 290syn keyword masmOpcode SHUFPD UNPCKHPD UNPCKLPD 291syn keyword masmOpcode CVTPD2PI CVTTPD2PI CVTPI2PD CVTPD2DQ 292syn keyword masmOpcode CVTTPD2DQ CVTDQ2PD CVTPS2PD CVTPD2PS 293syn keyword masmOpcode CVTSS2SD CVTSD2SS CVTSD2SI CVTTSD2SI CVTSI2SD 294syn keyword masmOpcode CVTDQ2PS CVTPS2DQ CVTTPS2DQ 295syn keyword masmOpcode MOVDQA MOVDQU MOVQ2DQ MOVDQ2Q PMULUDQ 296syn keyword masmOpcode PADDQ PSUBQ PSHUFLW PSHUFHW PSHUFD 297syn keyword masmOpcode PSLLDQ PSRLDQ PUNPCKHQDQ PUNPCKLQDQ 298syn keyword masmOpcode CLFLUSH LFENCE MFENCE PAUSE MASKMOVDQU 299syn keyword masmOpcode MOVNTPD MOVNTDQ MOVNTI 300 301" SSE3 opcodes (Pentium 4 w/ Hyper-Threading and later) 302syn keyword masmOpcode FISTTP LDDQU ADDSUBPS ADDSUBPD 303syn keyword masmOpcode HADDPS HSUBPS HADDPD HSUBPD 304syn keyword masmOpcode MOVSHDUP MOVSLDUP MOVDDUP MONITOR MWAIT 305 306" SSSE3 opcodes (Core and later) 307syn keyword masmOpcode PSIGNB PSIGNW PSIGND PABSB PABSW PABSD 308syn keyword masmOpcode PALIGNR PSHUFB PMULHRSW PMADDUBSW 309syn keyword masmOpcode PHSUBW PHSUBD PHSUBSW PHADDW PHADDD PHADDSW 310 311" SSE 4.1 opcodes (Penryn and later) 312syn keyword masmOpcode MPSADBW PHMINPOSUW PMULDQ PMULLD DPPS DPPD 313syn keyword masmOpcode BLENDPS BLENDPD BLENDVPS BLENDVPD 314syn keyword masmOpcode PBLENDVB PBLENDW 315syn keyword masmOpcode PMINSB PMAXSB PMINSD PMAXSD 316syn keyword masmOpcode PMINUW PMAXUW PMINUD PMAXUD 317syn keyword masmOpcode ROUNDPS ROUNDSS ROUNDPD ROUNDSD 318syn keyword masmOpcode INSERTPS PINSRB PINSRD PINSRQ 319syn keyword masmOpcode EXTRACTPS PEXTRB PEXTRD PEXTRQ 320syn keyword masmOpcode PMOVSXBW PMOVZXBW PMOVSXBD PMOVZXBD 321syn keyword masmOpcode PMOVSXBQ PMOVZXBQ PMOVSXWD PMOVZXWD 322syn keyword masmOpcode PMOVSXWQ PMOVZXWQ PMOVSXDQ PMOVZXDQ 323syn keyword masmOpcode PTEST PCMPEQQ PACKUSDW MOVNTDQA 324 325" SSE 4.2 opcodes (Nehalem and later) 326syn keyword masmOpcode PCMPESTRI PCMPESTRM PCMPISTRI PCMPISTRM PCMPGTQ 327syn keyword masmOpcode CRC32 POPCNT LZCNT 328 329" AES-NI (Westmere (2010) and later) 330syn keyword masmOpcode AESENC AESENCLAST AESDEC AESDECLAST 331syn keyword masmOpcode AESKEYGENASSIST AESIMC PCLMULQDQ 332 333" AVX (Sandy Bridge (2011) and later) 334syn keyword masmOpcode VBROADCASTSS VBROADCASTSD VBROADCASTF128 335syn keyword masmOpcode VINSERTF128 VEXTRACTF128 VMASKMOVPS VMASKMOVPD 336syn keyword masmOpcode VPERMILPS VPERMILPD VPERM2F128 337syn keyword masmOpcode VZEROALL VZEROUPPER 338 339" Other opcodes in Pentium and later processors 340syn keyword masmOpcode CMPXCHG8B CPUID UD2 341syn keyword masmOpcode RSM RDMSR WRMSR RDPMC RDTSC SYSENTER SYSEXIT 342syn match masmOpcode "CMOV\(P[EO]\|\(N\?\([ABGL]E\?\|[CEOPSZ]\)\)\)\>" 343 344 345" The default highlighting 346hi def link masmLabel PreProc 347hi def link masmComment Comment 348hi def link masmDirective Statement 349hi def link masmType Type 350hi def link masmOperator Type 351hi def link masmOption Special 352hi def link masmRegister Special 353hi def link masmString String 354hi def link masmText String 355hi def link masmTitle Title 356hi def link masmOpcode Statement 357hi def link masmOpFloat Statement 358 359hi def link masmHexadecimal Number 360hi def link masmDecimal Number 361hi def link masmOctal Number 362hi def link masmBinary Number 363hi def link masmFloatRaw Number 364hi def link masmFloat Number 365 366hi def link masmIdentifier Identifier 367 368syntax sync minlines=50 369 370let b:current_syntax = "masm" 371 372let &cpo = s:cpo_save 373unlet s:cpo_save 374 375" vim: ts=8 376