<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--
  NASM Intel x86 assembly syntax

  Created: Nicola Gigante <nicola.gigante@gmail.com>
    Changes: Bogdan Drozdowski (bogdandr@op.pl)
  Version: 1.3
             Lyle Putnam (lcputnam@gmail.com)
  Version: 1.4

Changes from 1.0:
  15/01/2006: version 1.1
    Added the rol instruction (bytewise rotate left) to the keywords list.
  17/01/2006: version 1.2
    Remade the list of instructions directly from the nasm documentation.
  22/04/2006: version 1.3 from Bogdan Drozdowski (bogdandr@op.pl):
    Removed duplicates form the instruction list and made it alphabetical.
    Added new instructions (some SSE* and 64-bit, NASM may not know all of them).
    Corrections in register list and a few new ones (not 64-bit).
    Changed regexes for hex, octal and bin numbers. Now words like
      "change" and "blah" will NOT have the "ch" and "ah" coloured.
  24/07/2011: Version 1.4 from Lyle Putnam (lcputnam@gmail.com):
    The above change to fix the regex for hex numbers was incorrect on Kate
    3.6.2. Fixed.

  GNU GENERAL PUBLIC LICENCE

This program, including associated files, is free software.  You may
distribute it and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation; either Version 2 of
the license, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-->
<language name="Intel x86 (NASM)" section="Assembler" version="1.40" kateversion="2.3" extensions="*.asm" mimetype="" author="Nicola Gigante (nicola.gigante@gmail.com)" license="GPL">
  <highlighting>
    <list name="registers">
      <!-- General purpose registers -->
      <item>eax</item>
      <item>ax</item>
      <item>ah</item>
      <item>al</item>
      <item>ebx</item>
      <item>bx</item>
      <item>bh</item>
      <item>bl</item>
      <item>ecx</item>
      <item>cx</item>
      <item>ch</item>
      <item>cl</item>
      <item>edx</item>
      <item>dx</item>
      <item>dh</item>
      <item>dl</item>
      <item>ebp</item>
      <item>bp</item>
      <item>esi</item>
      <item>si</item>
      <item>edi</item>
      <item>di</item>
      <!--
      <item>eip</item>
      <item>ip</item>
      -->
      <item>esp</item>
      <item>sp</item>
      <!-- Segmentation registers -->
      <item>cs</item>
      <item>ds</item>
      <item>es</item>
      <item>fs</item>
      <item>gs</item>
      <item>ss</item>
      <!-- Control registers -->
      <item>cr0</item>
      <!--<item>cr1</item>-->
      <item>cr2</item>
      <item>cr3</item>
      <item>cr4</item>
      <!-- Debug registers -->
      <item>dr0</item>
      <item>dr1</item>
      <item>dr2</item>
      <item>dr3</item>
      <item>dr6</item>
      <item>dr7</item>
      <!-- x87 FPU Registers -->
      <item>st</item>
      <!-- MMX registers -->
      <item>mm0</item>
      <item>mm1</item>
      <item>mm2</item>
      <item>mm3</item>
      <item>mm4</item>
      <item>mm5</item>
      <item>mm6</item>
      <item>mm7</item>
      <!-- XMM registers -->
      <item>xmm0</item>
      <item>xmm1</item>
      <item>xmm2</item>
      <item>xmm3</item>
      <item>xmm4</item>
      <item>xmm5</item>
      <item>xmm6</item>
      <item>xmm7</item>
    </list>
    <list name="instructions">
      <item>aaa</item>
      <item>aad</item>
      <item>aam</item>
      <item>aas</item>
      <item>adc</item>
      <item>add</item>
      <item>addpd</item>
      <item>addps</item>
      <item>addsd</item>
      <item>addss</item>
      <item>addsubpd</item>
      <item>addsubps</item>
      <item>and</item>
      <item>andnpd</item>
      <item>andnps</item>
      <item>andpd</item>
      <item>andps</item>
      <item>arpl</item>
      <item>bound</item>
      <item>bsf</item>
      <item>bsr</item>
      <item>bswap</item>
      <item>bt</item>
      <item>btc</item>
      <item>btr</item>
      <item>bts</item>
      <item>call</item>
      <item>cbw</item>
      <item>cwde</item>
      <item>cwd</item>
      <item>cdq</item>
      <item>cdqe</item>
      <item>cqo</item>
      <item>clc</item>
      <item>cld</item>
      <item>clgi</item>
      <item>cli</item>
      <item>clts</item>
      <item>clflush</item>
      <item>cmc</item>
      <item>cmova</item>
      <item>cmovae</item>
      <item>cmovb</item>
      <item>cmovbe</item>
      <item>cmovc</item>
      <item>cmove</item>
      <item>cmovg</item>
      <item>cmovge</item>
      <item>cmovl</item>
      <item>cmovle</item>
      <item>cmovna</item>
      <item>cmovnae</item>
      <item>cmovnb</item>
      <item>cmovnbe</item>
      <item>cmovnc</item>
      <item>cmovne</item>
      <item>cmovng</item>
      <item>cmovnge</item>
      <item>cmovnl</item>
      <item>cmovnle</item>
      <item>cmovno</item>
      <item>cmovnp</item>
      <item>cmovns</item>
      <item>cmovnz</item>
      <item>cmovo</item>
      <item>cmovp</item>
      <item>cmovpe</item>
      <item>cmovpo</item>
      <item>cmovs</item>
      <item>cmovz</item>
      <item>cmp</item>
      <item>cmpeqpd</item>
      <item>cmpeqps</item>
      <item>cmpeqsd</item>
      <item>cmpeqss</item>
      <item>cmplepd</item>
      <item>cmpleps</item>
      <item>cmplesd</item>
      <item>cmpless</item>
      <item>cmpltpd</item>
      <item>cmpltps</item>
      <item>cmpltsd</item>
      <item>cmpltss</item>
      <item>cmpneqpd</item>
      <item>cmpneqps</item>
      <item>cmpneqsd</item>
      <item>cmpneqss</item>
      <item>cmpnlepd</item>
      <item>cmpnleps</item>
      <item>cmpnlesd</item>
      <item>cmpnless</item>
      <item>cmpnltpd</item>
      <item>cmpnltps</item>
      <item>cmpnltsd</item>
      <item>cmpnltss</item>
      <item>cmpordpd</item>
      <item>cmpordps</item>
      <item>cmpordsd</item>
      <item>cmpordss</item>
      <item>cmppd</item>
      <item>cmpps</item>
      <item>cmps</item>
      <item>cmpsb</item>
      <item>cmpsd</item>
      <item>cmpss</item>
      <item>cmpsw</item>
      <item>cmpunordpd</item>
      <item>cmpunordps</item>
      <item>cmpunordsd</item>
      <item>cmpunordss</item>
      <item>cmpxchg</item>
      <item>cmpxchg486</item>
      <item>cmpxchg8b</item>
      <item>cmpxchg16b</item>
      <item>comisd</item>
      <item>comiss</item>
      <item>cpuid</item>
      <item>cvtdq2pd</item>
      <item>cvtdq2ps</item>
      <item>cvtpd2dq</item>
      <item>cvtpd2pi</item>
      <item>cvtpd2ps</item>
      <item>cvtpi2pd</item>
      <item>cvtpi2ps</item>
      <item>cvtps2dq</item>
      <item>cvtps2pd</item>
      <item>cvtps2pi</item>
      <item>cvtsd2si</item>
      <item>cvtsd2ss</item>
      <item>cvtsi2sd</item>
      <item>cvtsi2ss</item>
      <item>cvtss2sd</item>
      <item>cvtss2si</item>
      <item>cvttpd2dq</item>
      <item>cvttpd2pi</item>
      <item>cvttps2dq</item>
      <item>cvttps2pi</item>
      <item>cvttsd2si</item>
      <item>cvttss2si</item>
      <item>daa</item>
      <item>das</item>
      <item>dec</item>
      <item>div</item>
      <item>divpd</item>
      <item>divps</item>
      <item>divsd</item>
      <item>divss</item>
      <item>emms</item>
      <item>enter</item>
      <item>f2xm1</item>
      <item>fabs</item>
      <item>fadd</item>
      <item>faddp</item>
      <item>fbld</item>
      <item>fbstp</item>
      <item>fchs</item>
      <item>fclex</item>
      <item>fnclex</item>
      <item>fcmovb</item>
      <item>fcmovbe</item>
      <item>fcmove</item>
      <item>fcmovnb</item>
      <item>fcmovnbe</item>
      <item>fcmovne</item>
      <item>fcmovnu</item>
      <item>fcmovu</item>
      <item>fcom</item>
      <item>fcomp</item>
      <item>fcompp</item>
      <item>fcomi</item>
      <item>fcomip</item>
      <item>fcos</item>
      <item>fdecstp</item>
      <item>fdisi</item>
      <item>feni</item>
      <item>fdiv</item>
      <item>fdivr</item>
      <item>fdivp</item>
      <item>fdivrp</item>
      <item>femms</item>
      <item>ffree</item>
      <item>ffreep</item>
      <item>fiadd</item>
      <item>ficom</item>
      <item>ficomp</item>
      <item>fidiv</item>
      <item>fidivr</item>
      <item>fild</item>
      <item>fimul</item>
      <item>fincstp</item>
      <item>finit</item>
      <item>fist</item>
      <item>fistp</item>
      <item>fisttp</item>
      <item>fisub</item>
      <item>fisubr</item>
      <item>fld</item>
      <item>fld1</item>
      <item>fldl2e</item>
      <item>fldl2t</item>
      <item>fldlg2</item>
      <item>fldln2</item>
      <item>fldcw</item>
      <item>fldenv</item>
      <item>fldpi</item>
      <item>fldz</item>
      <item>fmul</item>
      <item>fmulp</item>
      <item>fndisi</item>
      <item>fneni</item>
      <item>fninit</item>
      <item>fnop</item>
      <item>fnsave</item>
      <item>fnstcw</item>
      <item>fnstenv</item>
      <item>fnstsw</item>
      <item>fnwait</item>
      <item>fpatan</item>
      <item>fptan</item>
      <item>fprem</item>
      <item>fprem1</item>
      <item>frndint</item>
      <item>frstor</item>
      <item>fsave</item>
      <item>fscale</item>
      <item>fsetpm</item>
      <item>fsin</item>
      <item>fsincos</item>
      <item>fsqrt</item>
      <item>fst</item>
      <item>fstp</item>
      <item>fstcw</item>
      <item>fstenv</item>
      <item>fstsw</item>
      <item>fsub</item>
      <item>fsubr</item>
      <item>fsubp</item>
      <item>fsubrp</item>
      <item>ftst</item>
      <item>fucom</item>
      <item>fucomp</item>
      <item>fucompp</item>
      <item>fucomi</item>
      <item>fucomip</item>
      <item>fwait</item>
      <item>fxam</item>
      <item>fxch</item>
      <item>fxrstor</item>
      <item>fxsave</item>
      <item>fxtract</item>
      <item>fyl2x</item>
      <item>fyl2xp1</item>
      <item>haddpd</item>
      <item>haddps</item>
      <item>hlt</item>
      <item>hsubpd</item>
      <item>hsubps</item>
      <item>ibts</item>
      <item>idiv</item>
      <item>imul</item>
      <item>in</item>
      <item>inc</item>
      <item>ins</item>
      <item>insb</item>
      <item>insd</item>
      <item>insw</item>
      <item>int</item>
      <item>int1</item>
      <item>int3</item>
      <item>into</item>
      <item>invd</item>
      <item>invlpg</item>
      <item>invlpga</item>
      <item>iret</item>
      <item>iretd</item>
      <item>iretq</item>
      <item>iretw</item>
      <item>ja</item>
      <item>jae</item>
      <item>jb</item>
      <item>jbe</item>
      <item>jc</item>
      <item>je</item>
      <item>jg</item>
      <item>jge</item>
      <item>jl</item>
      <item>jle</item>
      <item>jna</item>
      <item>jnae</item>
      <item>jnb</item>
      <item>jnbe</item>
      <item>jnc</item>
      <item>jne</item>
      <item>jng</item>
      <item>jnge</item>
      <item>jnl</item>
      <item>jnle</item>
      <item>jno</item>
      <item>jnp</item>
      <item>jns</item>
      <item>jnz</item>
      <item>jo</item>
      <item>jp</item>
      <item>jpe</item>
      <item>jpo</item>
      <item>js</item>
      <item>jz</item>
      <item>jcxz</item>
      <item>jecxz</item>
      <item>jrcxz</item>
      <item>jmp</item>
      <item>lahf</item>
      <item>lar</item>
      <item>lddqu</item>
      <item>ldmxcsr</item>
      <item>lds</item>
      <item>les</item>
      <item>lea</item>
      <item>leave</item>
      <item>lfence</item>
      <item>lfs</item>
      <item>lgdt</item>
      <item>lgs</item>
      <item>lidt</item>
      <item>lldt</item>
      <item>lmsw</item>
      <item>loadall</item>
      <item>loadall286</item>
      <item>lods</item>
      <item>lodsb</item>
      <item>lodsd</item>
      <item>lodsq</item>
      <item>lodsw</item>
      <item>loop</item>
      <item>loope</item>
      <item>loopne</item>
      <item>loopnz</item>
      <item>loopz</item>
      <item>lsl</item>
      <item>lss</item>
      <item>ltr</item>
      <item>maskmovdqu</item>
      <item>maskmovq</item>
      <item>maxpd</item>
      <item>maxps</item>
      <item>maxsd</item>
      <item>maxss</item>
      <item>mfence</item>
      <item>minpd</item>
      <item>minps</item>
      <item>minsd</item>
      <item>minss</item>
      <item>monitor</item>
      <item>mov</item>
      <item>movapd</item>
      <item>movaps</item>
      <item>movd</item>
      <item>movddup</item>
      <item>movdq2q</item>
      <item>movdqa</item>
      <item>movdqu</item>
      <item>movhlps</item>
      <item>movhpd</item>
      <item>movhps</item>
      <item>movlhps</item>
      <item>movlpd</item>
      <item>movlps</item>
      <item>movmskpd</item>
      <item>movmskps</item>
      <item>movntdq</item>
      <item>movnti</item>
      <item>movntpd</item>
      <item>movntps</item>
      <item>movntq</item>
      <item>movq</item>
      <item>movq2dq</item>
      <item>movs</item>
      <item>movsb</item>
      <item>movsd</item>
      <item>movshdup</item>
      <item>movsldup</item>
      <item>movsq</item>
      <item>movss</item>
      <item>movsx</item>
      <item>movsxd</item>
      <item>movsw</item>
      <item>movupd</item>
      <item>movups</item>
      <item>movzx</item>
      <item>mul</item>
      <item>mulpd</item>
      <item>mulps</item>
      <item>mulsd</item>
      <item>mulss</item>
      <item>mwait</item>
      <item>neg</item>
      <item>nop</item>
      <item>not</item>
      <item>or</item>
      <item>orpd</item>
      <item>orps</item>
      <item>out</item>
      <item>outs</item>
      <item>outsb</item>
      <item>outsw</item>
      <item>outsd</item>
      <item>packssdw</item>
      <item>packsswb</item>
      <item>packuswb</item>
      <item>paddb</item>
      <item>paddd</item>
      <item>paddq</item>
      <item>paddsb</item>
      <item>paddsw</item>
      <item>paddusb</item>
      <item>paddusw</item>
      <item>paddw</item>
      <item>pand</item>
      <item>pandn</item>
      <item>pause</item>
      <item>pavgb</item>
      <item>pavgusb</item>
      <item>pavgw</item>
      <item>pcmpeqb</item>
      <item>pcmpeqw</item>
      <item>pcmpeqd</item>
      <item>pcmpgtb</item>
      <item>pcmpgtw</item>
      <item>pcmpgtd</item>
      <item>pdistib</item>
      <item>pextrw</item>
      <item>pf2id</item>
      <item>pf2iw</item>
      <item>pfacc</item>
      <item>pfadd</item>
      <item>pfcmpeq</item>
      <item>pfcmpge</item>
      <item>pfcmpgt</item>
      <item>pfmax</item>
      <item>pfmin</item>
      <item>pfmul</item>
      <item>pfnacc</item>
      <item>pfpnacc</item>
      <item>pfrcp</item>
      <item>pfrcpit1</item>
      <item>pfrcpit2</item>
      <item>pfrsqit1</item>
      <item>pfrsqrt</item>
      <item>pfsub</item>
      <item>pfsubr</item>
      <item>pi2fd</item>
      <item>pi2fw</item>
      <item>pinsrw</item>
      <item>pmachriw</item>
      <item>pmaddwd</item>
      <item>pmagw</item>
      <item>pmaxsw</item>
      <item>pmaxub</item>
      <item>pminsw</item>
      <item>pminub</item>
      <item>pmovmskb</item>
      <item>pmulhrw</item>
      <item>pmulhuw</item>
      <item>pmulhw</item>
      <item>pmullw</item>
      <item>pmuludq</item>
      <item>pmvgezb</item>
      <item>pmvlzb</item>
      <item>pmvnzb</item>
      <item>pmvzb</item>
      <item>pop</item>
      <item>popa</item>
      <item>popaw</item>
      <item>popad</item>
      <item>popf</item>
      <item>popfw</item>
      <item>popfd</item>
      <item>popfq</item>
      <item>por</item>
      <item>prefetch</item>
      <item>prefetchnta</item>
      <item>prefetcht0</item>
      <item>prefetcht1</item>
      <item>prefetcht2</item>
      <item>prefetchw</item>
      <item>psadbw</item>
      <item>pshufd</item>
      <item>pshufhw</item>
      <item>pshuflw</item>
      <item>pshufw</item>
      <item>pslld</item>
      <item>pslldq</item>
      <item>psllq</item>
      <item>psllw</item>
      <item>psrad</item>
      <item>psraw</item>
      <item>psrld</item>
      <item>psrldq</item>
      <item>psrlq</item>
      <item>psrlw</item>
      <item>psubb</item>
      <item>psubd</item>
      <item>psubq</item>
      <item>psubsb</item>
      <item>psubsiw</item>
      <item>psubsw</item>
      <item>psubusb</item>
      <item>psubusw</item>
      <item>psubw</item>
      <item>pswapd</item>
      <item>punpckhbw</item>
      <item>punpckhdq</item>
      <item>punpckhqdq</item>
      <item>punpckhwd</item>
      <item>punpcklbw</item>
      <item>punpckldq</item>
      <item>punpcklqdq</item>
      <item>punpcklwd</item>
      <item>push</item>
      <item>pusha</item>
      <item>pushad</item>
      <item>pushaw</item>
      <item>pushf</item>
      <item>pushfd</item>
      <item>pushfq</item>
      <item>pushfw</item>
      <item>pxor</item>
      <item>rcl</item>
      <item>rcr</item>
      <item>rcpps</item>
      <item>rcpss</item>
      <item>rdmsr</item>
      <item>rdpmc</item>
      <item>rdshr</item>
      <item>rdtsc</item>
      <item>rdtscp</item>
      <item>ret</item>
      <item>retf</item>
      <item>retn</item>
      <item>rol</item>
      <item>ror</item>
      <item>rsdc</item>
      <item>rsldt</item>
      <item>rsm</item>
      <item>rsqrtps</item>
      <item>rsqrtss</item>
      <item>rsts</item>
      <item>sahf</item>
      <item>sal</item>
      <item>sar</item>
      <item>salc</item>
      <item>sbb</item>
      <item>scas</item>
      <item>scasb</item>
      <item>scasd</item>
      <item>scasq</item>
      <item>scasw</item>
      <item>seta</item>
      <item>setae</item>
      <item>setb</item>
      <item>setbe</item>
      <item>setc</item>
      <item>sete</item>
      <item>setg</item>
      <item>setge</item>
      <item>setl</item>
      <item>setle</item>
      <item>setna</item>
      <item>setnae</item>
      <item>setnb</item>
      <item>setnbe</item>
      <item>setnc</item>
      <item>setne</item>
      <item>setng</item>
      <item>setnge</item>
      <item>setnl</item>
      <item>setnle</item>
      <item>setno</item>
      <item>setnp</item>
      <item>setns</item>
      <item>setnz</item>
      <item>seto</item>
      <item>setp</item>
      <item>setpe</item>
      <item>setpo</item>
      <item>sets</item>
      <item>setz</item>
      <item>sfence</item>
      <item>sgdt</item>
      <item>shl</item>
      <item>shld</item>
      <item>shr</item>
      <item>shrd</item>
      <item>shufpd</item>
      <item>shufps</item>
      <item>sidt</item>
      <item>skinit</item>
      <item>sldt</item>
      <item>smi</item>
      <item>smint</item>
      <item>smintold</item>
      <item>smsw</item>
      <item>sqrtpd</item>
      <item>sqrtps</item>
      <item>sqrtsd</item>
      <item>sqrtss</item>
      <item>stc</item>
      <item>std</item>
      <item>stgi</item>
      <item>sti</item>
      <item>stmxcsr</item>
      <item>stos</item>
      <item>stosb</item>
      <item>stosd</item>
      <item>stosq</item>
      <item>stosw</item>
      <item>str</item>
      <item>sub</item>
      <item>subpd</item>
      <item>subps</item>
      <item>subsd</item>
      <item>subss</item>
      <item>svdc</item>
      <item>svldt</item>
      <item>svts</item>
      <item>swapgs</item>
      <item>syscall</item>
      <item>sysenter</item>
      <item>sysexit</item>
      <item>sysret</item>
      <item>test</item>
      <item>ucomisd</item>
      <item>ucomiss</item>
      <item>ud0</item>
      <item>ud1</item>
      <item>ud2</item>
      <item>umov</item>
      <item>unpckhpd</item>
      <item>unpckhps</item>
      <item>unpcklpd</item>
      <item>unpcklps</item>
      <item>verr</item>
      <item>verw</item>
      <item>vmload</item>
      <item>vmmcall</item>
      <item>vmrun</item>
      <item>vmsave</item>
      <item>wait</item>
      <item>wbinvd</item>
      <item>wrmsr</item>
      <item>wrshr</item>
      <item>xadd</item>
      <item>xbts</item>
      <item>xchg</item>
      <item>xlat</item>
      <item>xlatb</item>
      <item>xor</item>
      <item>xorpd</item>
      <item>xorps</item>
    </list>
    <list name="Data">
      <!-- repeat some data declaration -->
      <item>times</item>
      <!-- constants -->
      <item>equ</item>
      <!-- Initialized data -->
      <item>db</item>
      <item>dw</item>
      <item>dd</item>
      <item>dq</item>
      <item>dt</item>
      <!-- Uninitialized data -->
      <item>resb</item>
      <item>resw</item>
      <item>resd</item>
      <item>resq</item>
      <item>rest</item>
      <!-- binary file include -->
      <item>incbin</item>
      <!-- operand size -->
      <item>byte</item>
      <item>word</item>
      <item>dword</item>
      <item>qword</item>
      <item>short</item>
      <item>ptr</item>
    </list>
    <list name="NASM Keywords">
      <!-- NASM directives -->
      <item>absolute</item>
      <item>bits</item>
      <item>common</item>
      <item>extern</item>
      <item>global</item>
      <item>org</item>
      <item>section</item>
      <item>seg</item>
      <item>segment</item>
      <item>strict</item>
      <item>use16</item>
      <item>use32</item>
      <item>wrt</item>
      <!-- NASM standard macros -->
      <item>struc</item>
      <item>endstruc</item>
      <item>istruc</item>
      <item>at</item>
      <item>iend</item>
      <item>align</item>
      <item>alignb</item>

      <item>__SECT__</item>
      <item>__NASM_MAJOR__</item>
      <item>__NASM_MINOR__</item>
      <item>__NASM_SUBMINOR__</item>
      <item>___NASM_PATCHLEVEL__</item>
      <item>__NASM_VERSION_ID__</item>
      <item>__NASM_VER__</item>
      <item>__FILE__</item>
      <item>__LINE__</item>
    </list>
    <contexts>
      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
        <keyword attribute="Registers" context="#stay" String="registers"/>
        <keyword attribute="Data" context="#stay" String="Data"/>
        <keyword attribute="Instructions" context="#stay" String="instructions"/>
        <keyword attribute="NASM Keywords" context="#stay" String="NASM Keywords"/>
        <DetectChar attribute="Comment" context="Comment" char=";"/>
        <DetectChar attribute="Preprocessor" context="Preprocessor" char="%"/>
        <AnyChar attribute="String" context="String" String="&quot;'"/>
        <RegExpr attribute="Label" context="#stay" String="^\s*[A-Za-z0-9_.$]+:"/>
        <!-- Conditional instructions -->
        <RegExpr attribute="Instructions" context="#stay" String="(cmov|fcmov|j|loop|set)(a|ae|b|be|c|e|g|ge|l|le|na|nae|nb|nbe|nc|ne|ng|nge|nl|nle|no|np|ns|nz|o|p|pe|po|s|z)"/>
        <!-- The NASM's CPU directive -->
        <RegExpr attribute="NASM Keywords" context="#stay" String="cpu (pentium|ppro|p2|p3|katmai|p4|willamette|prescott|ia64)*"/>
        <!-- hexadecimal numbers -->
        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)((\$|0x){1}[0-9]+[a-f0-9]*|[0-9]+[a-f0-9]*h)([ \t,]+|$)"/>
        <!-- octal and binary numbers -->
        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)([0-7]+(q|o)|[01]+b)([ \t,]+|$)"/>
        <DetectChar attribute="Number" context="#stay" char="$"/>
        <HlCOct attribute="BaseN" context="#stay"/>
        <HlCHex attribute="BaseN" context="#stay"/>
        <Float attribute="Float" context="#stay"/>
        <Int attribute="Number" context="#stay"/>
        <HlCChar attribute="Char" context="#stay"/>
      </context>
      <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
      <context name="String" attribute="String" lineEndContext="#pop">
        <AnyChar attribute="String" context="#pop" String="&quot;'"/>
      </context>
    </contexts>

    <itemDatas>
      <itemData name="Normal Text" defStyleNum="dsNormal"/>
      <itemData name="Registers" defStyleNum="dsKeyword"/>
      <itemData name="Instructions" defStyleNum="dsKeyword"/>
      <itemData name="NASM Keywords" defStyleNum="dsKeyword"/>
      <itemData name="Comment" defStyleNum="dsComment"/>
      <itemData name="Label" defStyleNum="dsFunction"/>
      <itemData name="Data" defStyleNum="dsDataType"/>
      <itemData name="BaseN" defStyleNum="dsBaseN"/>
      <itemData name="Float" defStyleNum="dsFloat"/>
      <itemData name="Number" defStyleNum="dsDecVal"/>
      <itemData name="Char" defStyleNum="dsChar"/>
      <itemData name="String" defStyleNum="dsString"/>
      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
    </itemDatas>
  </highlighting>
  <general>
    <keywords casesensitive="0"/>
    <comments>
      <comment name="singleLine" start=";"/>
    </comments>
  </general>
</language>
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
