[ASM]
lexer=asm
keywords.0=name:bcd_instruction::aaa aad aam aas daa das
keywords.1=name:flow_instruction::ja jae jb jbe jc jcxz je jg jge jl jle jmp jna \
	jnae jnb jnbe jnc jne jng jnge jnl jnle jno jnp jns jnz \
	jo jp jpe jpo js jz \
	jcxz jecxz jrcxz \
	loop loope loopne loopz loopnz \
	call ret
	
keywords.2=name:alu_instruction::add sub adc sbb neg cmp inc dec \
	and or xor not test \
	shl shr sal sar shld shrd rol ror rcl rcr \
	cbw cwd cwde cdq cdqe cqo \
	bsf bsr bt btc btr bts \
	idiv imul div mul bswap \
	nop

keywords.3=name:mem_instruction::lea \
	mov movsx movsxd movzx \
	xlatb bound \
	xchg xadd cmpxchg cmpxchg8b cmpxchg16b

keywords.4=name:stack_instruction::push pop pushad popad pushf popf pushfd popfd pushfq popfq

keywords.5=name:pred_instruction::seta setae setb setbe setc sete setg setge setl \
	setle setna setnae setnb setnbe setnc setne setng setnge \
	setnl setnle setno setnp setns setnz seto setp setpe setpo \
	sets setz \
	salc
	
keywords.6=name:flag_instruction::clc cld stc std cmc lahf sahf

keywords.7=name:cmov_instruction::cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb \
	cmovnc cmove cmovz cmovne cmovnz cmovbe cmovna cmova \
	cmovnbe cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl \
	cmovnge cmovge cmovnl cmovle cmovng cmovg cmovnle

keywords.8=name:prefix_instruction::lock rep repe repz repne repnz

keywords.9=name:string_instruction::cmpsb cmpsw cmpsq \
	movsb movsw movsq \
	scasb scasw scasd scasq \
	stosb stosw stosd stosq

keywords.10=name:info_instruction::cpuid rdtsc rdtscp rdpmc xgetbv

keywords.11=name:lwp_instruction::llwpcb slwpcb lwpval lwpins

keywords.12=name:ext_instruction::crc32 popcnt lzcnt tzcnt movbe pclmulqdq rdrand

keywords.13=name:bmi1_instruction::andn bextr blsi blsmk blsr

keywords.14=name:bmi2_instruction::bzhi mulx pdep pext rorx sarx shlx shrx

keywords.14=name:tbm_instruction::blcfill blci blcic blcmsk blcs blsfill blsic t1mskc tzmsk

keywords.16=name:fpu_instruction::f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp \
	fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv \
	fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 \
	fldcw fldenv fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul \
	fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv \
	fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave \
	fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp \
	fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1 \
	fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos \
	fstenvd fucom fucomp fucompp fcomi fcomip fucomi fucomip ffreep \
	fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu

keywords.17=name:mmx_instruction::movd movq \
	paddb paddw paddd paddsb paddsw paddusb paddusw \
	psubb psubw psubd psubsb psubsw psubusb psubusw \
	pand pandn por pxor \
	pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw \
	pmaddwd pmulhw pmullw \
	psllw pslld psllq psrlw psrld psrlq psraw psrad \
	packuswb packsswb packssdw \
	punpcklbw punpcklwd punpckldq punpckhbw punpckhwd punpckhdq \
	emms

keywords.18=name:mmx2_instruction::pavgb pavgw \
	pextrw pinsrw pmovmskb \
	pmaxsw pmaxub pminsw pminub \
	pmulhuw psadbw pshufw \
	prefetchnta prefetcht0 prefetcht1 prefetcht2 \
	maskmovq movntq sfence

keywords.19=name:emmx_instruction::paddsiw psubsiw \
	pmulhrw pmachriw pmulhriw \
	pmagw pdistib paveb \
	pmvzb pmvnzb pmvlzb pmvgezb 

keywords.20=name:k3d_instruction::pfacc pfadd pfsub pfsubr pfmul \
	pfcmpeq pfcmpge pfcmpgt \
	pfmax pfmin \
	pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt \
	pi2fd pf2id \
	pavgusb pmulhrw \
	femms

keywords.21=name:k3d2_instruction::pfnacc pfpnacc pi2fw pf2iw pswapd

keywords.22=name:k3dgeode_instruction::pfrsqrtv pfrcpv

keywords.23=name:k3dprefetch_instruction::prefetch prefetchw

keywords.24=name:sse_instruction::addss addps subss subps \
	mulss mulps divss divps sqrtss sqrtps \ 
	rcpss rcpps rsqrtss rsqrtps \
	maxss maxps minss minps \
	cmpss comiss ucomiss cmpps \
	cmpeqss cmpltss cmpless cmpunordss cmpneqss cmpnltss cmpnless cmpordss \
	cmpeqps cmpltps cmpleps cmpunordps cmpneqps cmpnltps cmpnleps cmpordps \
	andnps andps orps xorps \
	cvtsi2ss cvtss2si cvttss2si \
	cvtpi2ps cvtps2pi cvttps2pi \
	movss movlps movhps movlhps movhlps movaps movups movntps movmskps \
	shufps unpckhps unpcklps \
	ldmxcsr stmxcsr

keywords.25=name:sse2_instruction::addpd addsd subpd subsd \
	mulsd mulpd divsd divpd sqrtsd sqrtpd \
	maxsd maxpd minsd minpd \
	cmpsd comisd ucomisd cmppd \
	cmpeqsd cmpltsd cmplesd cmpunordsd cmpneqsd cmpnltsd cmpnlesd cmpordsd \
	cmpeqpd cmpltpd cmplepd cmpunordpd cmpneqpd cmpnltpd cmpnlepd cmpordpd \
	andnpd andpd orpd xorpd \
	cvtsd2ss cvtpd2ps cvtss2sd cvtps2pd \
	cvtdq2ps cvtps2dq cvttps2dq \
	cvtdq2pd cvtpd2dq cvttpd2dq \
	cvtsi2sd cvtsd2si cvttsd2si \
	cvtpi2pd cvtpd2pi cvttpd2pi \
	movsd movlpd movhpd movapd movupd movntpd movmskpd \
	shufpd unpckhpd unpcklpd \
	movnti movdqa movdqu movntdq maskmovdqu \
	movdq2q movq2dq \
	paddq psubq pmuludq \
	pslldq psrldq \
	punpcklqdq punpckhqdq \
	pshufhw pshuflw pshufd \
	lfence mfence

keywords.26=name:sse3_instruction::addsubps addsubpd \
	haddps haddpd hsubps hsubpd \
	movsldup movshdup movddup \
	lddqu \
	fisttp
	
keywords.27=name:ssse3_instruction::psignb psignw psignd \
	pabsb pabsw pabsd \
	palignr pshufb \
	pmulhrsw pmaddubsw \
	phaddw phaddd phaddsw \
	phsubw phsubd phsubsw

keywords.28=name:sse4a_instruction::extrq insertq \
	movntsd movntss

keywords.29=name:sse41_instruction::mpsadbw phminposuw \
	pmuldq pmulld \
	dpps dppd \
	blendps blendpd blendvps blendvpd pblendvb pblendw \
	pmaxsb pmaxuw pmaxsd pmaxud pminsb pminuw pminsd pminud \
	roundps roundss roundpd roundsd \
	insertps pinsrb pinsrd pinsrq \
	extractps pextrb pextrd pextrq \
	pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq \
	pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq \
	ptest \
	pcmpeqq \
	packusdw \
	movntdqa

keywords.30=name:sse42_instruction::pcmpgtq \
	pcmpestri pcmpestrm pcmpistri pcmpistrm

keywords.31=name:aes_instruction::aesenc aesenclast aesdec aesdeclast aeskeygenassist aesimc

keywords.32=name:padlock_instruction::xcryptcbc xcryptcfb xcryptctr xcryptecb xcryptofb \
	xsha1 xsha256 montmul xstore


keywords.33=name:avx_instruction::vaddss vaddps vaddsd vaddpd vsubss vsubps vsubsd vsubpd \
	vaddsubps vaddsubpd \
	vhaddps vhaddpd vhsubps vhsubpd \
	vmulss vmulps vmulsd vmulpd \
	vmaxss vmaxps vmaxsd vmaxpd vminss vminps vminsd vminpd \
	vandps vandpd vandnps vandnpd vorps vorpd vxorps vxorpd \
	vblendps vblendpd vblendvps vblendvpd \
	vcmpss vcomiss vucomiss vcmpsd vcomisd vucomisd vcmpps vcmppd \
	vcmpeqss vcmpltss vcmpless vcmpunordss vcmpneqss vcmpnltss vcmpnless vcmpordss \
	vcmpeq_uqss vcmpngess vcmpngtss vcmpfalsess vcmpneq_oqss vcmpgess vcmpgtss vcmptruess \
	vcmpeq_osss vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss \
	vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss \
	vcmpeqps vcmpltps vcmpleps vcmpunordps vcmpneqps vcmpnltps vcmpnleps vcmpordps \
	vcmpeq_uqps vcmpngeps vcmpngtps vcmpfalseps vcmpneq_oqps vcmpgeps vcmpgtps vcmptrueps \
	vcmpeq_osps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps \
	vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps \
	vcmpeqsd vcmpltsd vcmplesd vcmpunordsd vcmpneqsd vcmpnltsd vcmpnlesd vcmpordsd \
	vcmpeq_uqsd vcmpngesd vcmpngtsd vcmpfalsesd vcmpneq_oqsd vcmpgesd vcmpgtsd vcmptruesd \
	vcmpeq_ossd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd \
	vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd \
	vcmpeqpd vcmpltpd vcmplepd vcmpunordpd vcmpneqpd vcmpnltpd vcmpnlepd vcmpordpd \
	vcmpeq_uqpd vcmpngepd vcmpngtpd vcmpfalsepd vcmpneq_oqpd vcmpgepd vcmpgtpd vcmptruepd \
	vcmpeq_ospd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd \
	vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd \
	vcvtsd2ss vcvtpd2ps vcvtss2sd vcvtps2pd \
	vcvtsi2ss vcvtss2si vcvttss2si \
	vcvtpi2ps vcvtps2pi vcvttps2pi \
	vcvtdq2ps vcvtps2dq vcvttps2dq \
	vcvtdq2pd vcvtpd2dq vcvttpd2dq \
	vcvtsi2sd vcvtsd2si vcvttsd2si \
	vcvtpi2pd vcvtpd2pi vcvttpd2pi \
	vdivss vdivps vdivsd vdivpd vsqrtss vsqrtps vsqrtsd vsqrtpd \
	vdpps vdppd \
	vmaskmovps vmaskmovpd \
	vmovss vmovsd vmovaps vmovapd vmovups vmovupd vmovntps vmovntpd \
	vmovhlps vmovlhps vmovlps vmovlpd vmovhps vmovhpd \
	vmovsldup vmovshdup vmovddup \
	vmovmskps vmovmskpd \
	vroundss vroundps vroundsd vroundpd \
	vrcpss vrcpps vrsqrtss vrsqrtps \
	vunpcklps vunpckhps vunpcklpd vunpckhpd \
	vbroadcastss vbroadcastsd vbroadcastf128 \
	vextractps vinsertps vextractf128 vinsertf128 \
	vshufps vshufpd vpermilps vpermilpd vperm2f128 \
	vtestps vtestpd \
	vpaddb vpaddusb vpaddsb vpaddw vpaddusw vpaddsw vpaddd vpaddq \
	vpsubb vpsubusb vpsubsb vpsubw vpsubusw vpsubsw vpsubd vpsubq \
	vphaddw vphaddsw vphaddd vphsubw vphsubsw vphsubd \
	vpsllw vpslld vpsllq vpsrlw vpsrld vpsrlq vpsraw vpsrad \
	vpand vpandn vpor vpxor \
	vpblendwb vpblendw \
	vpsignb vpsignw vpsignd \
	vpavgb vpavgw \
	vpabsb vpabsw vpabsd \
	vmovd vmovq vmovdqa vmovdqu vlddqu vmovntdq vmovntdqa vmaskmovdqu \
	vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq \
	vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq \
	vpackuswb vpacksswb vpackusdw vpackssdw \
	vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq \
	vpmaddubsw vpmaddwd \
	vpmullw vpmulhuw vpmulhw vpmulhrsw vpmulld vpmuludq vpmuldq \
	vpmaxub vpmaxsb vpmaxuw vpmaxsw vpmaxud vpmaxsd \
	vpminub vpminsb vpminuw vpminsw vpminud vpminsd \
	vpmovmskb vptest \
	vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq \
	vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq \
	vpslldq vpsrldq vpalignr \
	vpshufb vpshuflw vpshufhw vpshufd \
	vpextrb vpextrw vpextrd vpextrq vpinsrb vpinsrw vpinsrd vpinsrq \
	vpsadbw vmpsadbw vphminposuw \
	vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm \
	vpclmulqdq vaesenc vaesenclast vaesdec vaesdeclast vaeskeygenassist vaesimc \
	vldmxcsr vstmxcsr vzeroall vzeroupper

keywords.34=name:avx2_instruction::vbroadcasti128 vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq \
	vpblendd \
	vpermd vpermq vperm2i128 \
	vextracti128 vinserti128 \
	vpmaskmovd vpmaskmovq \
	vpsllvd vpsllvq vpsravd vpsrlvd vpsrldq \
	vpgatherdd vpgatherqd vgatherdq vgatherqq \
	vpermps vpermpd \
	vgatherdpd vgatherqpd vgatherdps vgatherqps

keywords.35=name:xop_instruction::vfrczss vfrczps vfrczsd vfrczpd \
	vpermil2ps vperlil2pd \
	vtestps vtestpd \
	vpcomub vpcomb vpcomuw vpcomw vpcomud vpcomd vpcomuq vpcomq \
	vphaddubw vphaddbw vphaddubd vphaddbd vphaddubq vphaddbq \
	vphadduwd vphaddwd vphadduwq vphaddwq vphaddudq vphadddq \
	vphsubbw vphsubwd vphsubdq \
	vpmacsdd vpmacssdd vpmacsdql vpmacssdql vpmacsdqh vpmacssdqh \
	vpmacsww vpmacssww vpmacswd vpmacsswd \
	vpmadcswd vpmadcsswd \
	vpcmov vpperm \
	vprotb vprotw vprotd vprotq \
	vpshab vpshaw vpshad vpshaq \
	vpshlb vpshlw vpshld vpshlq

keywords.36=name:cvt16_instruction::vcvtph2ps vcvtps2ph

keywords.37=name:fma4_instruction::vfmaddss vfmaddps vfmaddsd vfmaddpd \
	vfmsubss vfmsubps vfmsubsd vfmsubpd \
	vnfmaddss vnfmaddps vnfmaddsd vnfmaddpd \
	vnfmsubss vnfmsubps vnfmsubsd vnfmsubpd \
	vfmaddsubps vfmaddsubpd vfmsubaddps vfmsubaddpd

keywords.38=name:fma3_instruction::vfmadd132ss vfmadd213ss vfmadd231ss \
	vfmadd132ps vfmadd213ps vfmadd231ps \
	vfmadd132sd vfmadd213sd vfmadd231sd \
	vfmadd132pd vfmadd213pd vfmadd231pd \
	vfmaddsub132ps vfmaddsub213ps vfmaddsub231ps \
	vfmaddsub132pd vfmaddsub213pd vfmaddsub231pd \
	vfmsubadd132ps vfmsubadd213ps vfmsubadd231ps \
	vfmsubadd132pd vfmsubadd213pd vfmsubadd231pd \
	vfmsub132ss vfmsub213ss vfmsub231ss \
	vfmsub132ps vfmsub213ps vfmsub231ps \
	vfmsub132sd vfmsub213sd vfmsub231sd \
	vfmsub132pd vfmsub213pd vfmsub231pd \
	vfnmadd132ss vfnmadd213ss vfnmadd231ss \
	vfnmadd132ps vfnmadd213ps vfnmadd231ps \
	vfnmadd132sd vfnmadd213sd vfnmadd231sd \
	vfnmadd132pd vfnmadd213pd vfnmadd231pd \
	vfnmsub132ss vfnmsub213ss vfnmsub231ss \
	vfnmsub132ps vfnmsub213ps vfnmsub231ps \
	vfnmsub132sd vfnmsub213sd vfnmsub231sd \
	vfnmsub132pd vfnmsub213pd vfnmsub231pd

keywords.39=name:register::al ah bl bh cl ch dl dh \
	ax bx cx dx si di bp \
	eax ebx ecx edx esi edi ebx esp \
	st0 st1 st2 st3 st4 st5 st6 st7 \
	mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 \
	xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 \
	ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 \
	fs

keywords.40=name:register_64::sil dil bpl \
	r8b r9b r10b r11b r12b r13b r14b r15b \
	r8w r9w r10w r11w r12w r13w r14w r15w \
	rax rcx rdx rbx rsp rbp rsi rdi \
	r8 r9 r10 r11 r12 r13 r14 r15 \
	xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 \
	ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 \
	gs

keywords.41=name:directive_nasm::db dw dd dq dt do dy \
	resb resw resd resq rest reso resy incbin equ times safeseh \
	__utf16__ __utf32__ %+ \
	default cpu float start imagebase osabi \
	..start ..imagebase ..gotpc ..gotoff ..gottpoff ..got ..plt ..sym ..tlsie \
	section segment __sect__ group absolute \
	.bss .comment .data .lbss .ldata .lrodata .rdata .rodata .tbss .tdata .text \
	alloc bss code exec data noalloc nobits noexec nowrite progbits rdata tls write \
	private public common stack overlay class \
	extern global common import export \
	%define %idefine %xdefine %ixdefine %assign %undef %? %?? \
	%defstr %idefstr %deftok %ideftok \
	%strcat %strlen %substr \
	%macro %imacro %rmacro %exitmacro %endmacro %unmacro \
	%if %ifn %elif %elifn %else %endif \
	%ifdef %ifndef %elifdef %elifndef \
	%ifmacro %ifnmacro %elifmacro %elifnmacro \
	%ifctx %ifnctx %elifctx %elifnctx \
	%ifidn %ifnidn %elifidn %elifnidn \
	%ifidni %ifnidni %elifidni %elifnidni \
	%ifid %ifnid %elifid %elifnid \
	%ifnum %ifnnum %elifnum %elifnnum \
	%ifstr %ifnstr %elifstr %elifnstr \
	%iftoken %ifntoken %eliftoken %elifntoken \
	%ifempty %elifempty %ifnempty %elifnempty \
	%ifenv %ifnenv %elifenv %elifnenv \
	%rep %exitrep %endrep \
	%while %exitwhile %endwhile \
	%include %pathsearch %depend %use \
	%push %pop %repl %arg %local %stacksize flat flat64 large small \
	%error %warning %fatal \
	%00 .nolist %rotate %line %! %final %clear \
	struc endstruc istruc at iend \
	align alignb sectalign \
	bits use16 use32 use64 \
	__nasm_major__ __nasm_minor__ __nasm_subminor__ ___nasm_patchlevel__ \
	__nasm_version_id__ __nasm_ver__ \
	__file__ __line__ __pass__ __bits__ __output_format__ \
	__date__ __time__ __date_num__ __time_num__ __posix_time__ \
	__utc_date__ __utc_time__ __utc_date_num__ __utc_time_num__ \
	__float_daz__ __float_round__ __float__ \
	__use_altreg__ altreg \
	__use_smartalign__ smartalign __alignmode__ \
	__use_fp__ __infinity__ __nan__ __qnan__ __snan__ \
	__float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__

keywords.42=name:directive_operand_nasm::a16 a32 a64 o16 o32 o64 strict \
	byte word dword qword tword oword yword nosplit \
	%0 %1 %2 %3 %4 %5 %6 %7 %8 %9 \
	abs rel \
	$ $$ \
	seg wrt

style.33=name:LineNumbers,fore:clBlack,back:clSilver,font:Arial
style.34=name:Ok Braces,fore:clBlue,bold
style.35=name:Bad Braces,fore:clRed,bold
style.36=name:Control Chars,back:clSilver
style.37=name:Indent Guide,fore:clSilver
style.0=name:Default,fore:clGray
style.1=name:Comment,fore:clGreen
style.2=name:Number,fore:clTeal
style.3=name:String,fore:clPurple
style.4=name:Operator,bold
style.5=name:Identifier
style.6=name:CPU Instruction,fore:clNavy,bold
style.7=name:FPU instruction,fore:clBlue
style.8=name:Register,fore:#46AA03,bold
style.9=name:Directive,fore:clBlue
style.10=name:Directive Operand,fore:clBlue
style.11=name:Comment Block,fore:clGreen
style.12=name:Character,fore:clPurple
style.13=name:String not terminated,fore:clWhite,back:#E0C0E0,eolfilled
style.14=name:Extended Instruction,fore:#B00040

CommentBoxStart=;
CommentBoxEnd=;
CommentBoxMiddle=;
CommentBlock=;
CommentStreamStart=;
CommentStreamEnd=;
AssignmentOperator==
EndOfStatementOperator=;