<?xml version="1.0"?>
<!-- syntaxdefinition for Assembly by fish -->
<SyntaxDefinition name="Assembly" extensions=".asm">

	<Environment>
	</Environment>

	<Properties>
		<Property name="LineComment" value=";"/>
	</Properties>

	<Digits name="Digits" bold="false" italic="false" color="DarkBlue" />

	<RuleSets>
		<RuleSet ignorecase="false" >
			<Delimiters>&amp;&lt;&gt;~!@%^*()-+=|\#/{}[]:;"' ,	?</Delimiters>

			<Span name="LineComment" rule="CommentMarkerSet" stopateol="true" bold="false" italic="false" color="Gray" >
				<Begin >;</Begin>
			</Span>

			<Span name="String" stopateol="true" bold="false" italic="false" color="Fuchsia" >
				<Begin >"</Begin>
				<End >"</End>
			</Span>

			<MarkPrevious bold="true" italic="false" color="MidnightBlue" >(</MarkPrevious>

			<KeyWords name="Punctuation" bold="false" italic="false" color="DarkGreen" >
				<Key word="?"/>
				<Key word=","/>
				<Key word=":"/>
				<Key word=";"/>
				<Key word="("/>
				<Key word=")"/>
				<Key word="["/>
				<Key word="]"/>
				<Key word="{"/>
				<Key word="}"/>
				<Key word="+"/>
				<Key word="-"/>
				<Key word="/"/>
				<Key word="%"/>
				<Key word="*"/>
				<Key word="&lt;"/>
				<Key word="&gt;"/>
				<Key word="^"/>
				<Key word="="/>
				<Key word="~"/>
				<Key word="!"/>
				<Key word="|"/>
				<Key word="&amp;"/>
			</KeyWords>

			<KeyWords name = "Instructions" bold="false" italic="false" color="Blue">
				<Key word=".break"/><Key word=".breakif"/><Key word=".continue"/><Key word=".else"/><Key word=".elseif"/><Key word=".endif"/><Key word=".exit"/><Key word=".if"/><Key word=".repeat"/><Key word=".startup"/>
				<Key word=".until"/><Key word=".untilcxz"/><Key word=".while"/>
				<Key word="aaa"/><Key word="aad"/><Key word="aam"/><Key word="aas"/><Key word="adc"/><Key word="add"/><Key word="and"/><Key word="arpl"/>
				<Key word="bound"/><Key word="bsf"/><Key word="bsr"/><Key word="bswap"/><Key word="bt"/><Key word="btc"/><Key word="btr"/><Key word="bts"/>
				<Key word="call"/><Key word="cbw"/><Key word="cdq"/><Key word="clc"/><Key word="cld"/><Key word="cli"/><Key word="clts"/><Key word="cmc"/><Key word="cmov"/><Key word="cmp"/><Key word="cmps"/><Key word="cmpsb"/><Key word="cmpsd"/><Key word="cmpsw"/><Key word="cmpxchg"/>
				<Key word="cmpxchg8b"/><Key word="cpuid"/><Key word="cwd"/><Key word="cwde"/>
				<Key word="daa"/><Key word="das"/><Key word="dec"/><Key word="div"/>
				<Key word="enter"/><Key word="esc"/>
				<Key word="hlt"/>
				<Key word="idiv"/><Key word="imul"/><Key word="in"/><Key word="inc"/><Key word="ins"/><Key word="insb"/><Key word="insd"/><Key word="insw"/><Key word="int"/><Key word="into"/><Key word="invd"/><Key word="invlpg"/><Key word="invoke"/><Key word="iret"/><Key word="iretd"/>
				<Key word="ja"/><Key word="jae"/><Key word="jb"/><Key word="jbe"/><Key word="jc"/><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="lahf"/><Key word="lar"/><Key word="lds"/><Key word="lea"/><Key word="leave"/><Key word="les"/><Key word="lfs"/><Key word="lgdt"/><Key word="lgs"/><Key word="lidt"/><Key word="lldt"/><Key word="lmsw"/><Key word="lock"/><Key word="lods"/><Key word="lodsb"/>
				<Key word="lodsd"/><Key word="lodsw"/><Key word="loop"/><Key word="loope"/><Key word="loopne"/><Key word="loopnz"/><Key word="loopz"/><Key word="lsl"/><Key word="lss"/><Key word="ltr"/>
				<Key word="mov"/><Key word="movs"/><Key word="movsb"/><Key word="movsd"/><Key word="movsw"/><Key word="movsx"/><Key word="movzx"/><Key word="mul"/>
				<Key word="neg"/><Key word="nop"/><Key word="not"/>
				<Key word="oio"/><Key word="or"/><Key word="out"/><Key word="outs"/><Key word="outsb"/><Key word="outsd"/><Key word="outsw"/>
				<Key word="pop"/><Key word="popa"/><Key word="popad"/><Key word="popf"/><Key word="popfd"/><Key word="push"/><Key word="pusha"/><Key word="pushad"/><Key word="pushf"/><Key word="pushfd"/><Key word="pushw"/>
				<Key word="rcl"/><Key word="rcr"/><Key word="rdmsr"/><Key word="rdtsc"/><Key word="rep"/><Key word="repe"/><Key word="repne"/><Key word="repnz"/><Key word="repz"/><Key word="ret"/><Key word="retf"/><Key word="retn"/><Key word="rol"/><Key word="ror"/><Key word="rsdc"/>
				<Key word="rsldt"/><Key word="rsm"/><Key word="rsts"/>
				<Key word="sahf"/><Key word="sal"/><Key word="sar"/><Key word="sbb"/><Key word="scas"/><Key word="scasb"/><Key word="scasd"/><Key word="scasw"/><Key word="seta"/><Key word="setae"/><Key word="setb"/><Key word="setbe"/><Key word="setc"/><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="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="sgdt"/><Key word="shl"/>
				<Key word="shld"/><Key word="shr"/><Key word="shrd"/><Key word="sidt"/><Key word="sldt"/><Key word="smsw"/><Key word="stc"/><Key word="std"/><Key word="sti"/><Key word="stos"/><Key word="stosb"/><Key word="stosd"/><Key word="stosw"/><Key word="str"/><Key word="sub"/>
				<Key word="svdc"/><Key word="svldt"/><Key word="svts"/>
				<Key word="test"/>
				<Key word="verr"/><Key word="verw"/>
				<Key word="wait"/><Key word="wbinvd"/><Key word="wrmsr"/>
				<Key word="xadd"/><Key word="xchg"/><Key word="xlat"/><Key word="xlatb"/><Key word="xor"/>
			</KeyWords>

			<KeyWords name = "Keywords" bold="false" italic="false" color="Red">
				<Key word="$"/>
				<Key word="?"/>
				<Key word="@@"/><Key word="@b"/><Key word="@f"/>
				<Key word="ah"/><Key word="al"/><Key word="ax"/>
				<Key word="bh"/><Key word="bl"/><Key word="bp"/><Key word="bx"/>
				<Key word="carry?"/><Key word="ch"/><Key word="cl"/><Key word="cr0"/><Key word="cr2"/><Key word="cr3"/><Key word="cr4"/><Key word="cs"/><Key word="cx"/>
				<Key word="dh"/><Key word="di"/><Key word="dl"/><Key word="dr0"/><Key word="dr1"/><Key word="dr2"/><Key word="dr3"/><Key word="dr4"/><Key word="dr5"/><Key word="dr6"/><Key word="dr7"/><Key word="ds"/><Key word="dx"/>
				<Key word="eax"/><Key word="ebx"/><Key word="ebp"/><Key word="ecx"/><Key word="edi"/><Key word="edx"/><Key word="es"/><Key word="esi"/><Key word="esp"/><Key word="ext0"/><Key word="ext1"/><Key word="ext2"/><Key word="ext3"/><Key word="ext4"/><Key word="ext5"/><Key word="ext6"/><Key word="ext7"/>
				<Key word="extb0"/><Key word="extb1"/><Key word="extb2"/><Key word="extb3"/>
				<Key word="fs"/>
				<Key word="gs"/>
				<Key word="mm"/><Key word="mm0"/><Key word="mm1"/><Key word="mm2"/><Key word="mm3"/><Key word="mm4"/><Key word="mm5"/><Key word="mm6"/><Key word="mm7"/>
				<Key word="overflow?"/>
				<Key word="parity?"/>
				<Key word="si"/><Key word="sign?"/><Key word="sp"/><Key word="ss"/>
				<Key word="tr3"/><Key word="tr4"/><Key word="tr5"/><Key word="tr6"/><Key word="tr7"/>
				<Key word="xmm"/><Key word="xmm0"/><Key word="xmm1"/><Key word="xmm2"/><Key word="xmm3"/><Key word="xmm4"/><Key word="xmm5"/><Key word="xmm6"/><Key word="xmm7"/>
				<Key word="zero?"/>
		</KeyWords>

			<KeyWords name="Assembler directives" bold="true" italic="false" color="Green" >
				<Key word=".byte"/>
				<Key word=".text"/>
				<Key word=".word"/>
				<Key word=".asc"/>
				<Key word=".scrl"/>
				<Key word=".scru"/>
				<Key word=".include"/>
				<Key word=".incbin"/>
				<Key word=".label"/>
				<Key word=".goto"/>
				<Key word=".if"/>
				<Key word=".end"/>
				<Key word=".enrty"/>
				<Key word=".opt"/>
				<Key word=".set"/>
				<Key word=".title"/>
				<Key word="x"/>
				<Key word="y"/>
				<Key word="c"/>
			</KeyWords>

		<KeyWords name = "Sequirty actions" bold="false" italic="false" color="Red">
				<Key word = "request" />
				<Key word = "demand" />
				<Key word = "assert" />
				<Key word = "deny" />
				<Key word = "permitonly" />
				<Key word = "linkcheck" />
				<Key word = "inheritcheck" />
				<Key word = "reqmin" />
				<Key word = "reqopt" />
				<Key word = "reqrefuse" />
				<Key word = "prejitgrant" />
				<Key word = "prejitdeny" />
				<Key word = "noncasdemand" />
				<Key word = "noncaslinkdemand" />
				<Key word = "noncasinheritance" />
		</KeyWords>

		<KeyWords name = "Extern debug data specifier" bold="false" italic="false" color="Green">
				<Key word = ".line" />
				<Key word = ".language" />
				<Key word = "#line" />
		</KeyWords>

		<KeyWords name = "Misc keywords" bold="true" italic="false" color="Green">
				<!-- custom value specifier -->
				<Key word = ".custom" />
				<!-- IL method attribute  -->
				<Key word = "init" />
				<!-- Class layout directives -->
				<Key word = ".size" />
				<Key word = ".pack" />
				<!-- Manifest-related keywords -->
				<Key word = ".file" />
				<Key word = "nometadata" />
				<Key word = ".hash" />
				<Key word = ".assembly" />
				<Key word = "implicitcom" />
				<Key word = "noappdomain" />
				<Key word = "noprocess" />
				<Key word = "nomachine" />
				<Key word = ".publickey" />
				<Key word = ".publickeytoken" />
				<Key word = "algorithm" />
				<Key word = ".ver" />
				<Key word = ".locale" />
				<Key word = "extern" />
				<Key word = ".export" />
				<Key word = ".manifestres" />
				<Key word = ".mresource" />
				<Key word = ".localized" />
				<Key word = ".module" />

				<!-- Field marshaling keywords -->
				<Key word = "marshal" />
				<Key word = "custom" />
				<Key word = "sysstring" />
				<Key word = "fixed" />
				<Key word = "variant" />
				<Key word = "currency" />
				<Key word = "syschar" />
				<Key word = "decimal" />
				<Key word = "date" />
				<Key word = "bstr" />
				<Key word = "tbstr" />
				<Key word = "lpstr" />
				<Key word = "lpwstr" />
				<Key word = "lptstr" />
				<Key word = "objectref" />
				<Key word = "iunknown" />
				<Key word = "idispatch" />
				<Key word = "struct" />
				<Key word = "safearray" />
				<Key word = "byvalstr" />
				<Key word = "lpvoid" />
				<Key word = "any" />
				<Key word = "array" />
				<Key word = "lpstruct" />

				<!-- VTable fixup keywords  -->
				<Key word = ".vtfixup" />
				<Key word = "fromunmanaged" />
				<Key word = "callmostderived" />
				<Key word = ".vtentry" />

				<!-- Parameter attributes  -->
				<Key word = "in" />
				<Key word = "out" />
				<Key word = "opt" />
				<Key word = "lcid" />
				<Key word = "retval" />
				<Key word = ".param" />

				<!-- Method implementations  -->
				<Key word = ".override" />
				<Key word = "with" />

				<!-- VariantType keywords  -->
				<Key word = "null" />
				<Key word = "error" />
				<Key word = "hresult" />
				<Key word = "carray" />
				<Key word = "userdefined" />
				<Key word = "record" />
				<Key word = "filetime" />
				<Key word = "blob" />
				<Key word = "stream" />
				<Key word = "storage" />
				<Key word = "streamed_object" />
				<Key word = "stored_object" />
				<Key word = "blob_object" />
				<Key word = "cf" />
				<Key word = "clsid" />
				<Key word = "vector" />

				<!-- Null reference keyword for InitOpt  -->
				<Key word = "nullref" />

				<!-- Header flags keywords  -->
				<Key word = ".subsystem" />
				<Key word = ".corflags" />
				<Key word = "alignment" />
				<Key word = ".imagebase" />
			</KeyWords>

		</RuleSet>

		<RuleSet name = "CommentMarkerSet" ignorecase = "true">
		  	<Delimiters>&lt;&gt;~!@%^*()-+=|\#/{}[]:;"' ,	.?</Delimiters>
			<KeyWords name = "ErrorWords" bold="true" italic="false" color="Red">
				<Key word = "TODO" />
				<Key word = "FIXME" />
	 	 	</KeyWords>
			<KeyWords name = "WarningWords" bold="true" italic="false" color="#EEE0E000">
				<Key word = "HACK" />
				<Key word = "UNDONE" />
	 	 	</KeyWords>
		</RuleSet>

	</RuleSets>

</SyntaxDefinition>

