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