<?xml version="1.0" encoding="utf-8"?>

<!--
Assembly syntax highlighting
Written by Ezra Altahan
Created 03/01/2011 | Updated 23/10/2016
Version 1.6

hello@exr.be
https://github.com/ei
-->

<SyntaxDefinition name="Assembly" extensions=".asm;.ASM">

    <Environment> 
        <Default color="Black" bgcolor="#FFFFFF"/>
        <Selection color="Black" bgcolor="#C3C3FF"/>
        <LineNumbers color="Gray" bgcolor="#FFFFFF"/>
        <CaretMarker color="#F0F0F1"/>
        <VRuler color="#E0E0E5"/>
        
        <FoldLine color="#A0A0A0" bgcolor="#FFFFFF"/>
        <FoldMarker color="Black" bgcolor="#FFFFFF"/>
        <SelectedFoldLine color="Black" bgcolor="#FFFFFF"/>
        
        <EOLMarkers color="#CACAD2"/>
        <SpaceMarkers color="#B6B6C0"/>
        <TabMarkers color="#B6B6C0"/>
        <InvalidLines color="#B6B6C0"/>
    </Environment>
        
    <Properties>
        <Property name="LineComment" value=";"/>
        <Property name="BlockCommentBegin" value="%comment"/>
        <Property name="BlockCommentEnd" value="%endcomment"/>
    </Properties>
        
    <Digits name="Digits" color="Black"/>

    <RuleSets>
        <RuleSet ignorecase="true">
            
            <Delimiters>&amp;&lt;&gt;~!^*()+=|\/{}[]:;"',</Delimiters>
            
            <Span name="LineComment" stopateol="true" color="Green" bold="false" italic="false">
                <Begin>;</Begin>
            </Span>
            
            <Span name="BlockComment" stopateol="false" color="Green" bold="false" italic="false">
                <Begin>%comment</Begin>
                <End>%endcomment</End>
            </Span>
            
            <Span name="String" stopateol="true" color="#808080" bold="false" italic="false" escapecharacter="\">
                <Begin>"</Begin>
                <End>"</End>
            </Span>
            
            <Span name="Char" stopateol="true" color="#D50000" bold="false" italic="false" escapecharacter="\">
                <Begin>'</Begin>
                <End>'</End>
            </Span>
            
            <KeyWords name="Keywords1" color="Blue" bold="false" italic="false">
                <!-- Data Transfer Instructions -->
                <Key word="bswap"/>
                <Key word="bswapreg"/>
                <Key word="cbtw"/>
                <Key word="cltd"/>
                <Key word="cltq"/>
                <Key word="cmova"/>
                <Key word="cmov"/>
                <Key word="cmovae"/>
                <Key word="cmovbe"/>
                <Key word="cmovb"/>
                <Key word="cmovc"/>
                <Key word="cmovcc"/>
                <Key word="cmove"/>
                <Key word="cmovg"/>
                <Key word="cmovge"/>
                <Key word="cmovl"/>
                <Key word="cmovle"/>
                <Key word="cmovna"/>
                <Key word="cmovnae"/>
                <Key word="cmovnb"/>
                <Key word="cmovnbe"/>
                <Key word="cmovnc"/>
                <Key word="cmovne"/>
                <Key word="cmovng"/>
                <Key word="cmovnge"/>
                <Key word="cmovnl"/>
                <Key word="cmovnle"/>
                <Key word="cmovno"/>
                <Key word="cmovnp"/>
                <Key word="cmovns"/>
                <Key word="cmovnz"/>
                <Key word="cmovo"/>
                <Key word="cmovp"/>
                <Key word="cmovpe"/>
                <Key word="cmovpo"/>
                <Key word="cmovs"/>
                <Key word="cmovz"/>
                <Key word="cmpxchg"/>
                <Key word="cmpxchgb"/>
                <Key word="cmpxchgl"/>
                <Key word="cmpxchg486"/>
                <Key word="cmpxchg8b"/>
                <Key word="cqtd"/>
                <Key word="cqto"/>
                <Key word="cwtd"/>
                <Key word="cwtl"/>
                <Key word="mov"/>
                <Key word="movabs"/>
                <Key word="movl"/>
                <Key word="movsb"/>
                <Key word="movsd"/>
                <Key word="movsw"/>
                <Key word="movsx"/>
                <Key word="movsxbl"/>
                <Key word="movsxwl"/>
                <Key word="movw"/>
                <Key word="movzb"/>
                <Key word="movzw"/>
                <Key word="movzwl"/>
                <Key word="movzx"/>
                <Key word="pop"/>
                <Key word="popa"/>
                <Key word="popad"/>
                <Key word="popal"/>
                <Key word="popaw"/>
                <Key word="popl"/>
                <Key word="push"/>
                <Key word="pusha"/>
                <Key word="pushad"/>
                <Key word="pushal"/>
                <Key word="pushaw"/>
                <Key word="pushl"/>
                <Key word="pushw"/>
                <Key word="xadd"/>
                <Key word="xaddb"/>
                <Key word="xchg"/>
                <Key word="xchgb"/>
                <Key word="xchgl"/>
                <!-- Binary Arithmetic Instructions -->
                <Key word="adc"/>
                <Key word="adcb"/>
                <Key word="adcl"/>
                <Key word="adcw"/>
                <Key word="add"/>
                <Key word="addb"/>
                <Key word="addl"/>
                <Key word="addw"/>
                <Key word="cmp"/>
                <Key word="cmpb"/>
                <Key word="cmpw"/>
                <Key word="cmpl"/>
                <Key word="dec"/>
                <Key word="decb"/>
                <Key word="decw"/>
                <Key word="decl"/>
                <Key word="div"/>
                <Key word="divb"/>
                <Key word="divw"/>
                <Key word="divl"/>
                <Key word="idiv"/>
                <Key word="imul"/>
                <Key word="imulb"/>
                <Key word="imulw"/>
                <Key word="imull"/>
                <Key word="inc"/>
                <Key word="incb"/>
                <Key word="incw"/>
                <Key word="incl"/>
                <Key word="mul"/>
                <Key word="mulb"/>
                <Key word="mulw"/>
                <Key word="mull"/>
                <Key word="neg"/>
                <Key word="negb"/>
                <Key word="negw"/>
                <Key word="ngel"/>
                <Key word="sbb"/>
                <!-- Decimal Arithmetic Instructions -->
                <Key word="aaa"/>
                <Key word="aad"/>
                <Key word="aam"/>
                <Key word="aas"/>
                <Key word="daa"/>
                <Key word="das"/>
                <!-- Byte/Word/Doubleword/Quadword Conversion -->
                <Key word="CBW"/>
                <Key word="CDQ"/>
                <Key word="CDQE"/>
                <Key word="CWD"/>
                <Key word="CWDE"/>
                <!-- Logical Instructions -->
                <Key word="and"/>
                <Key word="andb"/>
                <Key word="andw"/>
                <Key word="andl"/>
                <Key word="not"/>
                <Key word="notb"/>
                <Key word="notw"/>
                <Key word="notl"/>
                <Key word="or"/>
                <Key word="orb"/>
                <Key word="orw"/>
                <Key word="orl"/>
                <Key word="xor"/>
                <Key word="xorb"/>
                <Key word="xorw"/>
                <Key word="xorl"/>
                <!-- Shift and Rotate Instructions -->
                <Key word="rcl"/>
                <Key word="rclb"/>
                <Key word="rcll"/>
                <Key word="rcr"/>
                <Key word="rcrb"/>
                <Key word="rcrl"/>
                <Key word="rol"/>
                <Key word="ror"/>
                <Key word="sal"/>
                <Key word="salc"/>
                <Key word="sar"/>
                <Key word="sarb"/>
                <Key word="shl"/>
                <Key word="shld"/>
                <Key word="shldl"/>
                <Key word="shldw"/>
                <Key word="shll"/>
                <Key word="shr"/>
                <Key word="shrd"/>
                <Key word="shrdl"/>
                <Key word="shrdw"/>
                <Key word="shrw"/>
                <!-- Bit and Byte Instructions -->
                <Key word="bsf"/>
                <Key word="bsr"/>
                <Key word="bt"/>
                <Key word="btc"/>
                <Key word="btl"/>
                <Key word="btr"/>
                <Key word="btrl"/>
                <Key word="bts"/>
                <Key word="btsl"/>
                <Key word="seta"/>
                <Key word="setae"/>
                <Key word="setb"/>
                <Key word="setbe"/>
                <Key word="setc"/>
                <Key word="setcc"/>
                <Key word="sete"/>
                <Key word="setg"/>
                <Key word="setge"/>
                <Key word="setl"/>
                <Key word="setle"/>
                <Key word="setna"/>
                <Key word="setnae"/>
                <Key word="setnb"/>
                <Key word="setnbe"/>
                <Key word="setnc"/>
                <Key word="setne"/>
                <Key word="setng"/>
                <Key word="setnge"/>
                <Key word="setnl"/>
                <Key word="setnle"/>
                <Key word="setno"/>
                <Key word="setnp"/>
                <Key word="setns"/>
                <Key word="setnz"/>
                <Key word="seto"/>
                <Key word="setp"/>
                <Key word="setpe"/>
                <Key word="setpo"/>
                <Key word="sets"/>
                <Key word="setz"/>
                <Key word="sub"/>
                <Key word="subb"/>
                <Key word="subw"/>
                <Key word="subl"/>
                <Key word="sbbb"/>
                <Key word="sbbw"/>
                <Key word="sbbl"/>
                <Key word="subp"/>
                <Key word="test"/>
                <Key word="testb"/>
                <Key word="testw"/>
                <Key word="testl"/>
                <!-- Control Transfer Instructions -->
                <Key word="bound"/>
                <Key word="boundw"/>
                <Key word="boundl"/>
                <Key word="call"/>
                <Key word="enter"/>
                <Key word="int"/>
                <Key word="into"/>
                <Key word="iret"/>
                <Key word="ja"/>
                <Key word="jae"/>
                <Key word="jb"/>
                <Key word="jbe"/>
                <Key word="jc"/>
                <Key word="jcc"/>
                <Key word="jcxz"/>
                <Key word="je"/>
                <Key word="jecxz"/>
                <Key word="jg"/>
                <Key word="jge"/>
                <Key word="jl"/>
                <Key word="jle"/>
                <Key word="jmp"/>
                <Key word="jna"/>
                <Key word="jnae"/>
                <Key word="jnb"/>
                <Key word="jnbe"/>
                <Key word="jnc"/>
                <Key word="jne"/>
                <Key word="jng"/>
                <Key word="jnge"/>
                <Key word="jnl"/>
                <Key word="jnle"/>
                <Key word="jno"/>
                <Key word="jnp"/>
                <Key word="jns"/>
                <Key word="jnz"/>
                <Key word="jo"/>
                <Key word="jp"/>
                <Key word="jpe"/>
                <Key word="jpo"/>
                <Key word="js"/>
                <Key word="jz"/>
                <Key word="lcall"/>
                <Key word="leave"/>
                <Key word="ljmp"/>
                <Key word="loop"/>
                <Key word="loopd"/>
                <Key word="loope"/>
                <Key word="loopew"/>
                <Key word="loopne"/>
                <Key word="loopnew"/>
                <Key word="loopnz"/>
                <Key word="loopnzw"/>
                <Key word="loopw"/>
                <Key word="loopz"/>
                <Key word="loopzw"/>
                <Key word="lret"/>
                <Key word="ret"/>
                <Key word="retf"/>
                <Key word="retn"/>
                <!-- String Instructions -->
                <Key word="cmps"/>
                <Key word="cmpsb"/>
                <Key word="cmpsl"/>
                <Key word="cmpsw"/>
                <Key word="lods"/>
                <Key word="lodsb"/>
                <Key word="lodsd"/>
                <Key word="lodsl"/>
                <Key word="lodsw"/>
                <Key word="movs"/>
                <Key word="movsb"/>
                <Key word="movsl"/>
                <Key word="smovl"/>
                <Key word="movsw"/>
                <Key word="smovw"/>
                <Key word="rep"/>
                <Key word="repe"/>
                <Key word="repne"/>
                <Key word="repnz"/>
                <Key word="repz"/>
                <Key word="scas"/>
                <Key word="scasb"/>
                <Key word="scasd"/>
                <Key word="scasl"/>
                <Key word="scasw"/>
                <Key word="stos"/>
                <Key word="stosb"/>
                <Key word="stosl"/>
                <Key word="stosw"/>
                <!-- I/O Instructions -->
                <Key word="in"/>
                <Key word="ins"/>
                <Key word="insb"/>
                <Key word="insl"/>
                <Key word="insw"/>
                <Key word="out"/>
                <Key word="outs"/>
                <Key word="outsb"/>
                <Key word="outsd"/>
                <Key word="outsl"/>
                <Key word="outsw"/>
                <!-- Flag Control (EFLAG) Instructions -->
                <Key word="clc"/>
                <Key word="cld"/>
                <Key word="cli"/>
                <Key word="cmc"/>
                <Key word="lahf"/>
                <Key word="popf"/>
                <Key word="popfd"/>
                <Key word="popfw"/>
                <Key word="pushf"/>
                <Key word="pushfd"/>
                <Key word="pushfw"/>
                <Key word="sahf"/>
                <Key word="stc"/>
                <Key word="std"/>
                <Key word="sti"/>
                <!-- Segment Register Instructions -->
                <Key word="lds"/>
                <Key word="les"/>
                <Key word="lfs"/>
                <Key word="lgs"/>
                <Key word="lss"/>
                <!-- Miscellaneous Instructions -->
                <Key word="cpuid"/>
                <Key word="lea"/>
                <Key word="nop"/>
                <Key word="ud0"/>
                <Key word="ud1"/>
                <Key word="ud2"/>
                <Key word="xlat"/>
                <Key word="xlatb"/>
                <!-- Operating System Support Instructions -->
                <Key word="arpl"/>
                <Key word="clts"/>
                <Key word="hlt"/>
                <Key word="invd"/>
                <Key word="invlp"/>
                <Key word="invlpg"/>
                <Key word="invlpgmem32"/>
                <Key word="lar"/>
                <Key word="lgdt"/>
                <Key word="lidt"/>
                <Key word="lldt"/>
                <Key word="lmsw"/>
                <Key word="loadall"/>
                <Key word="loadall286"/>
                <Key word="lock"/>
                <Key word="lsl"/>
                <Key word="ltr"/>
                <Key word="rdmsr"/>
                <Key word="rdpmc"/>
                <Key word="rdshr"/>
                <Key word="rdtsc"/>
                <Key word="rsm"/>
                <Key word="sgdt"/>
                <Key word="sidt"/>
                <Key word="sldt"/>
                <Key word="smi"/>
                <Key word="smint"/>
                <Key word="smintold"/>
                <Key word="smsw"/>
                <Key word="str"/>
                <Key word="syscall"/>
                <Key word="sysenter"/>
                <Key word="sysexit"/>
                <Key word="sysret"/>
                <Key word="verr"/>
                <Key word="verw"/>
                <Key word="wbinvd"/>
                <Key word="wrmsr"/>
                <Key word="wrshr"/>
            </KeyWords>
            
            <KeyWords name="Keywords2" color="Sienna" bold="false" italic ="false">
                <!-- Data Transfer Instructions (Floating Point) -->
                <Key word="fbld"/>
                <Key word="fbst"/>
                <Key word="fbstp"/>
                <Key word="fcmovb"/>
                <Key word="fcmovbe"/>
                <Key word="fcmove"/>
                <Key word="fcmovnb"/>
                <Key word="fcmovnbe"/>
                <Key word="fcmovne"/>
                <Key word="fcmovnu"/>
                <Key word="fcmovu"/>
                <Key word="fild"/>
                <Key word="fist"/>
                <Key word="fistp"/>
                <Key word="fld"/>
                <Key word="fst"/>
                <Key word="fstp"/>
                <Key word="fxch"/>
                <!-- Basic Arithmetic Instructions (Floating-Point) -->
                <Key word="fabs"/>
                <Key word="fadd"/>
                <Key word="faddp"/>
                <Key word="fchs"/>
                <Key word="fdiv"/>
                <Key word="fdivp"/>
                <Key word="fdivr"/>
                <Key word="fdivrp"/>
                <Key word="feni"/>
                <Key word="fiadd"/>
                <Key word="fidiv"/>
                <Key word="fidivr"/>
                <Key word="fimul"/>
                <Key word="fisub"/>
                <Key word="fisubr"/>
                <Key word="fisubrp"/>
                <Key word="fmul"/>
                <Key word="fmulp"/>
                <Key word="fprem"/>
                <Key word="fprem1"/>
                <Key word="frndint"/>
                <Key word="fscale"/>
                <Key word="fsqrt"/>
                <Key word="fsub"/>
                <Key word="fsubp"/>
                <Key word="fsubr"/>          
                <Key word="fsubrp"/>
                <Key word="fxtract"/>
                <!-- Comparison Instructions (Floating-Point) -->
                <Key word="fcom"/>
                <Key word="fcomi"/>
                <Key word="fcomip"/>
                <Key word="fcomp"/>
                <Key word="fcompp"/>
                <Key word="ficom"/>
                <Key word="ficomp"/>
                <Key word="ftst"/>
                <Key word="fucom"/>
                <Key word="fucomi"/>
                <Key word="fucomip"/>
                <Key word="fucomp"/>
                <Key word="fucompp"/>
                <Key word="fxam"/>
                <!-- Load Constants (Floating-Point) Instructions -->
                <Key word="f2xm1"/>
                <Key word="fcos"/>
                <Key word="fpatan"/>
                <Key word="fptan"/>
                <Key word="fsin"/>
                <Key word="fsincos"/>
                <Key word="fyl2x"/>
                <Key word="fyl2xp1"/>
                <!-- Load Constants (Floating-Point) Instructions -->
                <Key word="fld1"/>
                <Key word="fld2t"/>
                <Key word="fldg2"/>
                <Key word="fldl2e"/>
                <Key word="fldl2t"/>
                <Key word="fldlg2"/>
                <Key word="fldln2"/>
                <Key word="fldpi"/>
                <Key word="fldz"/>
                <!-- Control Instructions (Floating-Point) -->
                <Key word="fclex"/>
                <Key word="fdecstp"/>
                <Key word="fdisi"/>
                <Key word="ffree"/>
                <Key word="ffreep"/>
                <Key word="fincstp"/>
                <Key word="finit"/>
                <Key word="fldcw"/>
                <Key word="fldenv"/>
                <Key word="fldenvd"/>
                <Key word="fldenvmem"/>
                <Key word="fldenvw"/>
                <Key word="fnclex"/>
                <Key word="fndisi"/>
                <Key word="fneni"/>
                <Key word="fninit"/>
                <Key word="fnop"/>
                <Key word="fnsave"/>
                <Key word="fnsaved"/>
                <Key word="fsaved"/>
                <Key word="fnsavew"/>
                <Key word="fnstcw"/>
                <Key word="fnstenv"/>
                <Key word="fnstenvd"/>
                <Key word="fnstenvw"/>
                <Key word="fnstsw"/>
                <Key word="frstor"/>
                <Key word="frstord"/>
                <Key word="frstorw"/>
                <Key word="fsave"/>
                <Key word="fsavew"/>
                <Key word="fsetpm"/>
                <Key word="fstcw"/>
                <Key word="fstenv"/>
                <Key word="fstenvd"/>
                <Key word="fstenvw"/>
                <Key word="fstsw"/>
                <Key word="fwait"/>
                <Key word="wait"/>
            </KeyWords>
            
            <KeyWords name="Keywords3" color="#68615E" bold="false" italic ="false">
                <!-- SIMD State Management Instructions -->
                <Key word="fxrstor"/>
                <Key word="fxsave"/>
                <!-- Data Transfer Instructions (MMX) -->
                <Key word="movd"/>
                <Key word="movq"/>
                <!-- Conversion Instructions (MMX) -->
                <Key word="packssdw"/>
                <Key word="packsswb"/>
                <Key word="packuswb"/>
                <Key word="punpckhbw"/>
                <Key word="punpckhdq"/>
                <Key word="punpckhwd"/>
                <Key word="punpcklbw"/>
                <Key word="punpckldq"/>
                <Key word="punpcklwd"/>
                <!-- Packed Arithmetic Instructions (MMX) -->
                <Key word="paddb"/>
                <Key word="paddd"/>
                <Key word="paddsb"/>
                <Key word="paddsw"/>
                <Key word="paddusb"/>
                <Key word="paddusw"/>
                <Key word="paddw"/>
                <Key word="pmaddwd"/>
                <Key word="pmulhw"/>
                <Key word="pmullw"/>
                <Key word="psubb"/>
                <Key word="psubd"/>
                <Key word="psubsb"/>
                <Key word="psubsw"/>
                <Key word="psubusb"/>
                <Key word="psubusw"/>
                <Key word="psubw"/>
                <!-- Comparison Instructions (MMX) -->
                <Key word="pcmpeqb"/>
                <Key word="pcmpeqd"/>
                <Key word="pcmpeqw"/>
                <Key word="pcmpgtb"/>
                <Key word="pcmpgtd"/>
                <Key word="pcmpgtw"/>
                <!-- Logical Instructions (MMX) -->
                <Key word="pand"/>
                <Key word="pandn"/>
                <Key word="por"/>
                <Key word="pxor"/>
                <!-- Shift and Rotate Instructions (MMX) -->
                <Key word="pslld"/>
                <Key word="psllq"/>
                <Key word="psllw"/>
                <Key word="psrad"/>
                <Key word="psraw"/>
                <Key word="psrld"/>
                <Key word="psrlq"/>
                <Key word="psrlw"/>
                <!-- State Management Instructions (MMX) -->
                <Key word="emms"/>
                <!-- EMMX Instructions -->
                <Key word="paddsiw"/>
                <Key word="paveb"/>
                <Key word="pdistib"/>
                <Key word="pmachriw"/>
                <Key word="pmagw"/>
                <Key word="pmulhriw"/>
                <Key word="pmulhrw"/>
                <Key word="pmulhrwa"/>
                <Key word="pmulhrwc"/>
                <Key word="pmvgezb"/>
                <Key word="pmvlzb"/>
                <Key word="pmvnzb"/>
                <Key word="pmvzb"/>
                <Key word="psubsiw"/>
                <!-- 3DNow! Instructions -->
                <Key word="femms"/>
                <Key word="pavgusb"/>
                <Key word="pf2id"/>
                <Key word="pf2iw"/>
                <Key word="pfacc"/>
                <Key word="pfadd"/>
                <Key word="pfcmpeq"/>
                <Key word="pfcmpge"/>
                <Key word="pfcmpgt"/>
                <Key word="pfmax"/>
                <Key word="pfmin"/>
                <Key word="pfmul"/>
                <Key word="pfnacc"/>
                <Key word="pfpnacc"/>
                <Key word="pfrcp"/>
                <Key word="pfrcpit1"/>
                <Key word="pfrcpit2"/>
                <Key word="pfrcpv"/>
                <Key word="pfrsqit1"/>
                <Key word="pfrsqrt"/>
                <Key word="pfrsqrtv"/>
                <Key word="pfsub"/>
                <Key word="pfsubr"/>
                <Key word="pi2fd"/>
                <Key word="pi2fw"/>
                <Key word="prefetch"/>
                <Key word="prefetchw"/>
                <Key word="pswapd"/>
                <!-- Data Transfer Instructions (SSE) -->
                <Key word="movaps"/>
                <Key word="movhlps"/>
                <Key word="movhps"/>
                <Key word="movlhps"/>
                <Key word="movlps"/>
                <Key word="movmskps"/>
                <Key word="movss"/>
                <Key word="movups"/>
                <!-- Packed Arithmetic Instructions (SSE) -->
                <Key word="addps"/>
                <Key word="addss"/>
                <Key word="divps"/>
                <Key word="divss"/>
                <Key word="maxps"/>
                <Key word="maxss"/>
                <Key word="minps"/>
                <Key word="minss"/>
                <Key word="mulps"/>
                <Key word="mulss"/>
                <Key word="paxsd"/>
                <Key word="rcpps"/>
                <Key word="rcpss"/>
                <Key word="rsqrtps"/>
                <Key word="rsqrtss"/>
                <Key word="sqrtps"/>
                <Key word="sqrtss"/>
                <Key word="subps"/>
                <Key word="subss"/>
                <!-- Comparison Instructions (SSE) -->
                <Key word="cmpps"/>
                <Key word="cmpss"/>
                <Key word="comiss"/>
                <Key word="ucomiss"/>
                <!-- Logical Instructions (SSE) -->
                <Key word="andnps"/>
                <Key word="andps"/>
                <Key word="orps"/>
                <Key word="xorps"/>
                <!-- Shuffle and Unpack Instructions (SSE) -->
                <Key word="shufps"/>
                <Key word="unpckhps"/>
                <Key word="unpcklps"/>
                <!-- Conversion Instructions (SSE) -->
                <Key word="cvtpi2ps"/>
                <Key word="cvtps2pi"/>
                <Key word="cvtsi2ss"/>
                <Key word="cvtss2si"/>
                <Key word="cvttps2pi"/>
                <Key word="cvttss2si"/>
                <!-- MXCSR State Management Instructions (SSE) -->
                <Key word="ldmxcsr"/>
                <Key word="stmxcsr"/>
                <!-- 64–Bit SIMD Integer Instructions (SSE) -->
                <Key word="pavgb"/>
                <Key word="pavgw"/>
                <Key word="pextrw"/>
                <Key word="pinsrw"/>
                <Key word="pmaxsw"/>
                <Key word="pmaxub"/>
                <Key word="pminsw"/>
                <Key word="pminub"/>
                <Key word="pmovmskb"/>
                <Key word="pmulhuw"/>
                <Key word="psadbw"/>
                <Key word="pshufw"/>
                <!-- Miscellaneous Instructions (SSE) -->
                <Key word="maskmovq"/>
                <Key word="movntps"/>
                <Key word="movntq"/>
                <Key word="prefetch0"/>
                <Key word="prefetch1"/>
                <Key word="prefetch2"/>
                <Key word="prefetchnta"/>
                <Key word="prefetcht0"/>
                <Key word="prefetcht1"/>
                <Key word="prefetcht2"/>
                <Key word="sfence"/>
                <!-- SSE2 Data Movement Instructions -->
                <Key word="movapd"/>
                <Key word="movhpd"/>
                <Key word="movlpd"/>
                <Key word="movmskpd"/>
                <Key word="movupd"/>
                <!-- SSE2 Packed Arithmetic Instructions -->
                <Key word="addpd"/>
                <Key word="addsd"/>
                <Key word="divpd"/>
                <Key word="divsd"/>
                <Key word="maxpd"/>
                <Key word="maxsd"/>
                <Key word="minpd"/>
                <Key word="minsd"/>
                <Key word="mulpd"/>
                <Key word="mulsd"/>
                <Key word="sqrtpd"/>
                <Key word="sqrtsd"/>
                <Key word="subpd"/>
                <Key word="subsd"/>
                <!-- SSE2 Logical Instructions -->
                <Key word="andnpd"/>
                <Key word="andpd"/>
                <Key word="orpd"/>
                <Key word="xorpd"/>
                <!-- SSE2 Compare Instructions -->
                <Key word="cmppd"/>
                <Key word="cmpsd"/>
                <Key word="comisd"/>
                <Key word="ucomisd"/>
                <!-- SSE2 Shuffle and Unpack Instructions -->
                <Key word="shufpd"/>
                <Key word="unpckhpd"/>
                <Key word="unpcklpd"/>
                <!-- SSE2 Conversion Instructions -->
                <Key word="cvtdq2pd"/>
                <Key word="cvtpd2dq"/>
                <Key word="cvtpd2pi"/>
                <Key word="cvtpd2ps"/>
                <Key word="cvtpi2pd"/>
                <Key word="cvtps2pd"/>
                <Key word="cvtsd2si"/>
                <Key word="cvtsd2ss"/>
                <Key word="cvtsi2sd"/>
                <Key word="cvtss2sd"/>
                <Key word="cvttpd2dq"/>
                <Key word="cvttpd2pi"/>
                <Key word="cvttsd2si"/>
                <!-- SSE2 Packed Single-Precision Floating-Point Instructions -->
                <Key word="cvtdq2ps"/>
                <Key word="cvtps2dq"/>
                <Key word="cvttps2dq"/>
                <!-- SSE2 128–Bit SIMD Integer Instructions -->
                <Key word="movdq2q"/>
                <Key word="movdqa"/>
                <Key word="movdqu"/>
                <Key word="movq2dq"/>
                <Key word="paddq"/>
                <Key word="pmuludq"/>
                <Key word="pshufd"/>
                <Key word="pshufhw"/>
                <Key word="pshuflw"/>
                <Key word="pslldq"/>
                <Key word="psrldq"/>
                <Key word="psubq"/>
                <Key word="punpckhqdq"/>
                <Key word="punpcklqdq"/>
                <!-- SSE2 Miscellaneous Instructions -->
                <Key word="clflush"/>
                <Key word="lfence"/>
                <Key word="maskmovdq"/>
                <Key word="maskmovdqu"/>
                <Key word="mfence"/>
                <Key word="movntdq"/>
                <Key word="movnti"/>
                <Key word="movntpd"/>
                <Key word="pause"/>
            </KeyWords>
            
            <KeyWords name="Keywords4" color="Black" bold="false" italic="false">
                <!-- General Registers -->
                <Key word="ah"/>
                <Key word="al"/>
                <Key word="ax"/>
                <Key word="bh"/>
                <Key word="bl"/>
                <Key word="bx"/>
                <Key word="ch"/>
                <Key word="cl"/>
                <Key word="cx"/>
                <Key word="dh"/>
                <Key word="dl"/>
                <Key word="dx"/>
                <Key word="eax"/>
                <Key word="ebx"/>
                <Key word="ecx"/>
                <Key word="edx"/>
                <!-- Control Registers -->
                <Key word="cr0"/>
                <Key word="cr1"/>
                <Key word="cr2"/>
                <Key word="cr3"/>
                <Key word="cr4"/>
                <Key word="cr8"/>
                <Key word="efer"/>
                <!-- Debug Registers -->
                <Key word="dr0"/>
                <Key word="dr1"/>
                <Key word="dr2"/>
                <Key word="dr3"/>
                <Key word="dr6"/>
                <Key word="dr7"/>
                <!-- FPU Data Registers -->
                <Key word="st0"/>
                <Key word="st1"/>
                <Key word="st2"/>
                <Key word="st3"/>
                <Key word="st4"/>
                <Key word="st5"/>
                <Key word="st6"/>
                <Key word="st7"/>
                <!-- MMX Registers -->
                <Key word="mm0"/>
                <Key word="mm1"/>
                <Key word="mm2"/>
                <Key word="mm3"/>
                <Key word="mm4"/>
                <Key word="mm5"/>
                <Key word="mm6"/>
                <Key word="mm7"/>
                <!-- SSE Registers -->
                <Key word="xmm0"/>
                <Key word="xmm1"/>
                <Key word="xmm2"/>
                <Key word="xmm3"/>
                <Key word="xmm4"/>
                <Key word="xmm5"/>
                <Key word="xmm6"/>
                <Key word="xmm7"/>
                <!-- Segment Registers -->
                <Key word="cs"/>
                <Key word="ds"/>
                <Key word="es"/>
                <Key word="fs"/>
                <Key word="gs"/>
                <Key word="ss"/>
                <!-- Indexes and Pointers -->
                <Key word="bp"/>
                <Key word="di"/>
                <Key word="ip"/>
                <Key word="si"/>
                <Key word="sp"/>
                <Key word="ebp"/>
                <Key word="edi"/>
                <Key word="eip"/>
                <Key word="esi"/>
                <Key word="esp"/>
                <!-- Indicator -->
                <Key word="eflags"/>
            </KeyWords>
            
            <KeyWords name="Keywords5" color="SteelBlue" bold="false" italic="false">
                <Key word="%arg"/>
                <Key word="%assign"/>
                <Key word="%define"/>
                <Key word="%elif"/>
                <Key word="%elifctk"/>
                <Key word="%elifdef"/>
                <Key word="%elifid"/>
                <Key word="%elifidn"/>
                <Key word="%elifidni"/>
                <Key word="%elifmacro"/>
                <Key word="%elifnctk"/>
                <Key word="%elifndef"/>
                <Key word="%elifnid"/>
                <Key word="%elifnidn"/>
                <Key word="%elifnidni"/>
                <Key word="%elifnmacro"/>
                <Key word="%elifnnum"/>
                <Key word="%elifnstr"/>
                <Key word="%elifnum"/>
                <Key word="%elifstr"/>
                <Key word="%else"/>
                <Key word="%endif"/>
                <Key word="%endmacro"/>
                <Key word="%endrep"/>
                <Key word="%error"/>
                <Key word="%exitrep"/>
                <Key word="%iassign"/>
                <Key word="%idefine"/>
                <Key word="%if"/>
                <Key word="%ifctk"/>
                <Key word="%ifdef"/>
                <Key word="%ifid"/>
                <Key word="%ifidn"/>
                <Key word="%ifidni"/>
                <Key word="%ifmacro"/>
                <Key word="%ifnctk"/>
                <Key word="%ifndef"/>
                <Key word="%ifnid"/>
                <Key word="%ifnidn"/>
                <Key word="%ifnidni"/>
                <Key word="%ifnmacro"/>
                <Key word="%ifnnum"/>
                <Key word="%ifnstr"/>
                <Key word="%ifnum"/>
                <Key word="%ifstr"/>
                <Key word="%imacro"/>
                <Key word="%include"/>
                <Key word="%line"/>
                <Key word="%local"/>
                <Key word="%macro"/>
                <Key word="%out"/>
                <Key word="%pop"/>
                <Key word="%push"/>
                <Key word="%rep"/>
                <Key word="%repl"/>
                <Key word="%rotate"/>
                <Key word="%stacksize"/>
                <Key word="%strlen"/>
                <Key word="%substr"/>
                <Key word="%undef"/>
                <Key word="%xdefine"/>
                <Key word="%xidefine"/>
                <Key word=".abort"/>
                <Key word=".align"/>
                <Key word=".alpha"/>
                <Key word=".app-file"/>
                <Key word=".ascii"/>
                <Key word=".asciz"/>
                <Key word=".asg"/>
                <Key word=".asmfunc"/>
                <Key word=".balignl"/>
                <Key word=".bcd"/>
                <Key word=".bes"/>
                <Key word=".bits"/>
                <Key word=".break"/>
                <Key word=".bss"/>
                <Key word=".byte"/>
                <Key word=".cdecls"/>
                <Key word=".char"/>
                <Key word=".cinit"/>
                <Key word=".code"/>
                <Key word=".comm"/>
                <Key word=".comment"/>
                <Key word=".common"/>
                <Key word=".const"/>
                <Key word=".continue"/>
                <Key word=".copy"/>
                <Key word=".cref"/>
                <Key word=".cstring"/>
                <Key word=".data"/>
                <Key word=".data1"/>
                <Key word=".data?"/>
                <Key word=".debug"/>
                <Key word=".def"/>
                <Key word=".define"/>
                <Key word=".desc"/>
                <Key word=".dim"/>
                <Key word=".dosseg"/>
                <Key word=".double"/>
                <Key word=".drlist"/>
                <Key word=".drnolist"/>
                <Key word=".dynamic"/>
                <Key word=".dynsm"/>
                <Key word=".dynstr"/>
                <Key word=".eject"/>
                <Key word=".elfsym"/>
                <Key word=".else"/>
                <Key word=".elseif"/>
                <Key word=".emember"/>
                <Key word=".emsg"/>
                <Key word=".end"/>
                <Key word=".endasmfunc"/>
                <Key word=".endef"/>
                <Key word=".endenum"/>
                <Key word=".endgroup"/>
                <Key word=".endif"/>
                <Key word=".endloop"/>
                <Key word=".endm"/>
                <Key word=".endr"/>
                <Key word=".endstruct"/>
                <Key word=".endw"/>
                <Key word=".enum"/>
                <Key word=".equ"/>
                <Key word=".err"/>
                <Key word=".err1"/>
                <Key word=".err2"/>
                <Key word=".errb"/>
                <Key word=".errdef"/>
                <Key word=".errdif"/>
                <Key word=".errdifi"/>
                <Key word=".erre"/>
                <Key word=".erridn"/>
                <Key word=".erridni"/>
                <Key word=".errnb"/>
                <Key word=".errndef"/>
                <Key word=".errnz"/>
                <Key word=".eval"/>
                <Key word=".even"/>
                <Key word=".exit"/>
                <Key word=".extern"/>
                <Key word=".fardata"/>
                <Key word=".fardata?"/>
                <Key word=".fclist"/>
                <Key word=".fcnolist"/>
                <Key word=".field"/>
                <Key word=".file"/>
                <Key word=".fini"/>
                <Key word=".float"/>
                <Key word=".global"/>
                <Key word=".globl"/>
                <Key word=".gmember"/>
                <Key word=".got"/>
                <Key word=".group"/>
                <Key word=".half"/>
                <Key word=".hash"/>
                <Key word=".hword"/>
                <Key word=".ident"/>
                <Key word=".if"/>
                <Key word=".include"/>
                <Key word=".init"/>
                <Key word=".int"/>
                <Key word=".interp"/>
                <Key word=".intvec"/>
                <Key word=".irp"/>
                <Key word=".irpc"/>
                <Key word=".label"/>
                <Key word=".lall"/>
                <Key word=".lcomm"/>
                <Key word=".length"/>
                <Key word=".lfcond"/>
                <Key word=".lflags"/>
                <Key word=".line"/>
                <Key word=".linkonce"/>
                <Key word=".list"/>
                <Key word=".listall"/>
                <Key word=".listif"/>
                <Key word=".listmacro"/>
                <Key word=".listmacroall"/>
                <Key word=".ln"/>
                <Key word=".local"/>
                <Key word=".long"/>
                <Key word=".loop"/>
                <Key word=".macro"/>
                <Key word=".mexit"/>
                <Key word=".mlib"/>
                <Key word=".mlist"/>
                <Key word=".mmsg"/>
                <Key word=".mnolist"/>
                <Key word=".model"/>
                <Key word=".mri"/>
                <Key word=".msfloat"/>
                <Key word=".no87"/>
                <Key word=".nocref"/>
                <Key word=".nolist"/>
                <Key word=".nolist"/>
                <Key word=".nolistif"/>
                <Key word=".nolistmacro"/>
                <Key word=".nonvolatile"/>
                <Key word=".note"/>
                <Key word=".octa"/>
                <Key word=".option"/>
                <Key word=".org"/>
                <Key word=".p2alignl"/>
                <Key word=".p2alignw"/>
                <Key word=".page"/>
                <Key word=".plt"/>
                <Key word=".psize"/>
                <Key word=".quad"/>
                <Key word=".radix"/>
                <Key word=".ref"/>
                <Key word=".relaname"/>
                <Key word=".repeat"/>
                <Key word=".rept"/>
                <Key word=".retain"/>
                <Key word=".retainrefs"/>
                <Key word=".rodata"/>
                <Key word=".rodata1"/>
                <Key word=".sall"/>
                <Key word=".sbttl"/>
                <Key word=".scl"/>
                <Key word=".sect"/>
                <Key word=".section"/>
                <Key word=".select"/>
                <Key word=".seq"/>
                <Key word=".set"/>
                <Key word=".setsym"/>
                <Key word=".sfcond"/>
                <Key word=".short"/>
                <Key word=".shstrtab"/>
                <Key word=".single"/>
                <Key word=".size"/>
                <Key word=".skip"/>
                <Key word=".space"/>
                <Key word=".sslist"/>
                <Key word=".ssnolist"/>
                <Key word=".stabd"/>
                <Key word=".stabn"/>
                <Key word=".stabs"/>
                <Key word=".stack"/>
                <Key word=".startup"/>
                <Key word=".string"/>
                <Key word=".strtab"/>
                <Key word=".struct"/>
                <Key word=".symdepend"/>
                <Key word=".symtab"/>
                <Key word=".sysmem"/>
                <Key word=".tab"/>
                <Key word=".tag"/>
                <Key word=".text"/>
                <Key word=".tfcond"/>
                <Key word=".title"/>
                <Key word=".type"/>
                <Key word=".ubyte"/>
                <Key word=".uchar"/>
                <Key word=".uhalf"/>
                <Key word=".uint"/>
                <Key word=".ulong"/>
                <Key word=".unasg"/>
                <Key word=".undefine"/>
                <Key word=".until"/>
                <Key word=".untilcxz"/>
                <Key word=".usect"/>
                <Key word=".ushort"/>
                <Key word=".uword"/>
                <Key word=".val"/>
                <Key word=".value"/>
                <Key word=".var"/>
                <Key word=".version"/>
                <Key word=".volatile"/>
                <Key word=".weak"/>
                <Key word=".while"/>
                <Key word=".width"/>
                <Key word=".wmsg"/>
                <Key word=".word"/>
                <Key word=".xall"/>
                <Key word=".xcref"/>
                <Key word=".xcrep"/>
                <Key word=".xlist"/>
                <Key word="absolute"/>
                <Key word="alias"/>
                <Key word="align"/>
                <Key word="alignb"/>
                <Key word="assume"/>
                <Key word="at"/>
                <Key word="bits"/>
                <Key word="catstr"/>
                <Key word="comm"/>
                <Key word="comment"/>
                <Key word="common"/>
                <Key word="cpu"/>
                <Key word="db"/>
                <Key word="dd"/>
                <Key word="df"/>
                <Key word="dosseg"/>
                <Key word="dq"/>
                <Key word="dt"/>
                <Key word="dup"/>
                <Key word="dw"/>
                <Key word="echo"/>
                <Key word="else"/>
                <Key word="elseif"/>
                <Key word="elseif1"/>
                <Key word="elseif2"/>
                <Key word="elseifb"/>
                <Key word="elseifdef"/>
                <Key word="elseifdif"/>
                <Key word="elseifdifi"/>
                <Key word="elseife"/>
                <Key word="elseifidn"/>
                <Key word="elseifidni"/>
                <Key word="elseifnb"/>
                <Key word="elseifndef"/>
                <Key word="end"/>
                <Key word="endif"/>
                <Key word="endm"/>
                <Key word="endp"/>
                <Key word="ends"/>
                <Key word="endstruc"/>
                <Key word="eq"/>
                <Key word="equ"/>
                <Key word="even"/>
                <Key word="exitm"/>
                <Key word="export"/>
                <Key word="extern"/>
                <Key word="externdef"/>
                <Key word="extrn"/>
                <Key word="file"/>
                <Key word="for"/>
                <Key word="forc"/>
                <Key word="fun"/>
                <Key word="ge"/>
                <Key word="global"/>
                <Key word="global"/>
                <Key word="goto"/>
                <Key word="group"/>
                <Key word="gt"/>
                <Key word="height"/>
                <Key word="high"/>
                <Key word="highword"/>
                <Key word="hiproc"/>
                <Key word="iend"/>
                <Key word="if"/>
                <Key word="if1"/>
                <Key word="if2"/>
                <Key word="ifb"/>
                <Key word="ifdef"/>
                <Key word="ifdif"/>
                <Key word="ifdifi"/>
                <Key word="ife"/>
                <Key word="ifidn"/>
                <Key word="ifidni"/>
                <Key word="ifnb"/>
                <Key word="ifndef"/>
                <Key word="import"/>
                <Key word="incbin"/>
                <Key word="include"/>
                <Key word="includelib"/>
                <Key word="instr"/>
                <Key word="invoke"/>
                <Key word="irp"/>
                <Key word="irpc"/>
                <Key word="istruc"/>
                <Key word="label"/>
                <Key word="le"/>
                <Key word="length"/>
                <Key word="lengthof"/>
                <Key word="local"/>
                <Key word="local"/>
                <Key word="loproc"/>
                <Key word="low"/>
                <Key word="lowword"/>
                <Key word="lroffset"/>
                <Key word="lt"/>
                <Key word="macro"/>
                <Key word="mask"/>
                <Key word="mod"/>
                <Key word="name"/>
                <Key word="ne"/>
                <Key word="notype"/>
                <Key word="object"/>
                <Key word="offset"/>
                <Key word="opattr"/>
                <Key word="option"/>
                <Key word="org"/>
                <Key word="page"/>
                <Key word="popcontext"/>
                <Key word="private"/>
                <Key word="proc"/>
                <Key word="proto"/>
                <Key word="ptr"/>
                <Key word="public"/>
                <Key word="purge"/>
                <Key word="pushcontext"/>
                <Key word="record"/>
                <Key word="repeat"/>
                <Key word="rept"/>
                <Key word="resb"/>
                <Key word="resd"/>
                <Key word="resq"/>
                <Key word="rest"/>
                <Key word="resw"/>
                <Key word="section"/>
                <Key word="seg"/>
                <Key word="segment"/>
                <Key word="short"/>
                <Key word="size"/>
                <Key word="sizeof"/>
                <Key word="sizestr"/>
                <Key word="struc"/>
                <Key word="struct"/>
                <Key word="substr"/>
                <Key word="subtitle"/>
                <Key word="subttl"/>
                <Key word="textequ"/>
                <Key word="this"/>
                <Key word="times"/>
                <Key word="title"/>
                <Key word="type"/>
                <Key word="typedef"/>
                <Key word="union"/>
                <Key word="use16"/>
                <Key word="use32"/>
                <Key word="weak"/>
                <Key word="while"/>
                <Key word="width"/>
            </KeyWords>
            
            <KeyWords name="Keywords6" color="Navy" bold="false" italic="false">
                <Key word="$"/>
                <Key word="addr"/>
                <Key word="basic"/>
                <Key word="byte"/>
                <Key word="c"/>
                <Key word="casemap"/>
                <Key word="dword"/>
                <Key word="epilogue"/>
                <Key word="expr16"/>
                <Key word="expr32"/>
                <Key word="far"/>
                <Key word="far16"/>
                <Key word="far32"/>
                <Key word="flat"/>
                <Key word="forceframe"/>
                <Key word="fortran"/>
                <Key word="fword"/>
                <Key word="large"/>
                <Key word="loadds"/>
                <Key word="medium"/>
                <Key word="memory"/>
                <Key word="near"/>
                <Key word="near16"/>
                <Key word="near32"/>
                <Key word="none"/>
                <Key word="nothing"/>
                <Key word="para"/>
                <Key word="pascal"/>
                <Key word="prologue"/>
                <Key word="qword"/>
                <Key word="readonly"/>
                <Key word="real10"/>
                <Key word="real4"/>
                <Key word="real8"/>
                <Key word="sbyte"/>
                <Key word="sdword"/>
                <Key word="small"/>
                <Key word="stdcall"/>
                <Key word="sword"/>
                <Key word="tbyte"/>
                <Key word="vararg"/>
                <Key word="word"/>
            </KeyWords>
            
            <KeyWords name="Keywords7" color="DarkViolet" bold="false" italic="false">
                <!-- MSP430 Mathematical Functions -->
                <Key word="$acos"/>
                <Key word="$asin"/>
                <Key word="$atan"/>
                <Key word="$atan2"/>
                <Key word="$ceil"/>
                <Key word="$cos"/>
                <Key word="$cosh"/>
                <Key word="$cvf"/>
                <Key word="$cvi"/>
                <Key word="$exp"/>
                <Key word="$fabs"/>
                <Key word="$floor"/>
                <Key word="$fmod"/>
                <Key word="$int"/>
                <Key word="$ldexp"/>
                <Key word="$log"/>
                <Key word="$log10"/>
                <Key word="$max"/>
                <Key word="$min"/>
                <Key word="$pow"/>
                <Key word="$round"/>
                <Key word="$sgn"/>
                <Key word="$sin"/>
                <Key word="$sinh"/>
                <Key word="$sqrt"/>
                <Key word="$strtod"/>
                <Key word="$tan"/>
                <Key word="$tanh"/>
                <Key word="$trunc"/>
                <!-- MSP430 Substitution Symbol Functions -->
                <Key word="$symlen"/>
                <Key word="$symcmp"/>
                <Key word="$firstch"/>
                <Key word="$lastch"/>
                <Key word="$isdefed"/>
                <Key word="$ismember"/>
                <Key word="$iscons"/>
                <Key word="$isname"/>
                <Key word="$isreg"/>
            </KeyWords>
        </RuleSet>
    </RuleSets>
</SyntaxDefinition>
