Skip to content

Instantly share code, notes, and snippets.

@mrbesher
Last active December 10, 2020 20:18
Show Gist options
  • Save mrbesher/79d3d43a657fc73e5b0ae5ab98ad3cb6 to your computer and use it in GitHub Desktop.
Save mrbesher/79d3d43a657fc73e5b0ae5ab98ad3cb6 to your computer and use it in GitHub Desktop.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language SYSTEM "language.dtd">
<!--Based on the language defintion shared on:
https://wiki.gnome.org/Projects/GtkSourceView/LanguageDefinitions?action=AttachFile&do=view&target=asm-intel.lang
-->
<language id="assembler8086" name="Assembler (8086)" version="2.0" section="Sources">
<metadata>
<property name="mimetypes">text/x-asm;text/x-assembler</property>
<property name="globs">*.asm</property>
</metadata>
<styles>
<style id="preprocessor" name="Preprocessor" map-to="def:preprocessor"/>
<style id="keyword" name="Keyword" map-to="def:keyword"/>
<style id="comment" name="Comment" map-to="def:comment"/>
<style id="operator" name="Operator" map-to="def:operator"/>
<style id="string" name="String" map-to="def:string"/>
<style id="char" name="Character" map-to="def:character"/>
<style id="type" name="Data Type" map-to="def:type"/>
<style id="decimal" name="Data Type" map-to="def:decimal"/>
<style id="escaped-character" name="Escaped Character" map-to="def:special-char"/>
</styles>
<default-regex-options case-sensitive="false"/>
<definitions>
<context id="assembler8086">
<include>
<context id="comment" style-ref="comment">
<start>#|@|;</start>
<end>$</end>
</context>
<context id="comment-multiline" style-ref="comment">
<start>/\*</start>
<end>\*/</end>
</context>
<context id="nasm-id" style-ref="keyword">
<start>\[</start>
<end>\]</end>
</context>
<context id="operator" style-ref="operator">
<match>[-.,:\+\*\/\(\)\{\}\[]|]</match>
</context>
<context id="label" style-ref="preprocessor">
<match>^[A-Za-z_][A-Za-z_0-9]*\:</match>
</context>
<context id="local-label" style-ref="preprocessor">
<match>.[A-Za-z_0-9]*\:</match>
</context>
<context id="string" style-ref="string">
<start>&quot;</start>
<end>&quot;</end>
</context>
<context id="character" style-ref="char">
<start>\'</start>
<end>\'</end>
</context>
<context id="escape" style-ref="escaped-character">
<match>\\.</match>
</context>
<context id="decimal" style-ref="decimal">
<match>\b([1-9][0-9]*|0)([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?\b</match>
</context>
<context id="float" style-ref="decimal">
<match>\b([0-9]+[Ee][-]?[0-9]+|([0-9]*\.[0-9]+|[0-9]+\.)([Ee][-]?[0-9]+)?)[fFlL]?</match>
</context>
<context id="hex" style-ref="decimal">
<match>\b0[xX][0-9a-fA-F]+([Uu]([Ll]|LL|ll)?|([Ll]|LL|ll)[Uu]?)?\b</match>
</context>
<context id="commands" style-ref="preprocessor">
<keyword>format</keyword>
<keyword>as</keyword>
<keyword>use16</keyword>
<keyword>use32</keyword>
<keyword>use64</keyword>
<keyword>equ</keyword>
<keyword>times</keyword>
<keyword>if</keyword>
<keyword>repeat</keyword>
<keyword>while</keyword>
<keyword>end</keyword>
<keyword>break</keyword>
<keyword>display</keyword>
<keyword>err</keyword>
<keyword>include</keyword>
<keyword>macro</keyword>
<keyword>align</keyword>
<keyword>db</keyword> <keyword>du</keyword>
<keyword>dw</keyword>
<keyword>dd</keyword>
<keyword>dq</keyword>
<keyword>rb</keyword>
<keyword>rw</keyword>
<keyword>rd</keyword>
<keyword>rq</keyword>
<keyword>short</keyword>
<keyword>near</keyword>
<keyword>far</keyword>
<keyword>byte</keyword>
<keyword>word</keyword>
<keyword>dword</keyword>
<keyword>qword</keyword>
</context>
<context id="instructions" style-ref="keyword">
<keyword>aaa</keyword>
<keyword>aad</keyword>
<keyword>aam</keyword>
<keyword>aas</keyword>
<keyword>adc</keyword>
<keyword>add</keyword>
<keyword>and</keyword>
<keyword>call</keyword>
<keyword>cbw</keyword>
<keyword>clc</keyword>
<keyword>cld</keyword>
<keyword>cli</keyword>
<keyword>cmc</keyword>
<keyword>cmp</keyword>
<keyword>cmpsb</keyword>
<keyword>cmpsw</keyword>
<keyword>cwd</keyword>
<keyword>daa</keyword>
<keyword>das</keyword>
<keyword>dec</keyword>
<keyword>div</keyword>
<keyword>esc</keyword>
<keyword>hlt</keyword>
<keyword>idiv</keyword>
<keyword>imul</keyword>
<keyword>in</keyword>
<keyword>inc</keyword>
<keyword>int</keyword>
<keyword>into</keyword>
<keyword>iret</keyword>
<keyword>JA</keyword>
<keyword>JAE</keyword>
<keyword>JB</keyword>
<keyword>JBE</keyword>
<keyword>JC</keyword>
<keyword>JCXZ</keyword>
<keyword>JE</keyword>
<keyword>JG</keyword>
<keyword>JGE</keyword>
<keyword>JL</keyword>
<keyword>JLE</keyword>
<keyword>JNA</keyword>
<keyword>JNAE</keyword>
<keyword>JNB</keyword>
<keyword>JNBE</keyword>
<keyword>JNC</keyword>
<keyword>JNE</keyword>
<keyword>JNG</keyword>
<keyword>JNGE</keyword>
<keyword>JNL</keyword>
<keyword>JNLE</keyword>
<keyword>JNO</keyword>
<keyword>JNP</keyword>
<keyword>JNS</keyword>
<keyword>JNZ</keyword>
<keyword>JO</keyword>
<keyword>JP</keyword>
<keyword>JPE</keyword>
<keyword>JPO</keyword>
<keyword>JS</keyword>
<keyword>JZ</keyword>
<keyword>jmp</keyword>
<keyword>lahf</keyword>
<keyword>lds</keyword>
<keyword>lea</keyword>
<keyword>les</keyword>
<keyword>lock</keyword>
<keyword>lodsb</keyword>
<keyword>lodsw</keyword>
<keyword>loop</keyword>
<keyword>LOOPE</keyword>
<keyword>LOOPNE</keyword>
<keyword>LOOPNZ</keyword>
<keyword>LOOPZ</keyword>
<keyword>mov</keyword>
<keyword>movsb</keyword>
<keyword>movsw</keyword>
<keyword>mul</keyword>
<keyword>neg</keyword>
<keyword>nop</keyword>
<keyword>not</keyword>
<keyword>or</keyword>
<keyword>out</keyword>
<keyword>pop</keyword>
<keyword>popf</keyword>
<keyword>push</keyword>
<keyword>pushf</keyword>
<keyword>rcl</keyword>
<keyword>rcr</keyword>
<keyword>REP</keyword>
<keyword>REPE</keyword>
<keyword>REPNE</keyword>
<keyword>REPNZ</keyword>
<keyword>REPZ</keyword>
<keyword>ret</keyword>
<keyword>retn</keyword>
<keyword>retf</keyword>
<keyword>rol</keyword>
<keyword>ror</keyword>
<keyword>sahf</keyword>
<keyword>sal</keyword>
<keyword>sar</keyword>
<keyword>sbb</keyword>
<keyword>scasb</keyword>
<keyword>scasw</keyword>
<keyword>shl</keyword>
<keyword>shr</keyword>
<keyword>stc</keyword>
<keyword>std</keyword>
<keyword>sti</keyword>
<keyword>stosb</keyword>
<keyword>stosw</keyword>
<keyword>sub</keyword>
<keyword>test</keyword>
<keyword>wait</keyword>
<keyword>xchg</keyword>
<keyword>xlat</keyword>
<keyword>xor</keyword>
</context>
<context id="registers" style-ref="type">
<!-- intel 386 -->
<keyword>ax</keyword>
<keyword>bx</keyword>
<keyword>cx</keyword>
<keyword>dx</keyword>
<keyword>di</keyword>
<keyword>si</keyword>
<keyword>bp</keyword>
<keyword>sp</keyword>
<keyword>al</keyword>
<keyword>ah</keyword>
<keyword>bh</keyword>
<keyword>bl</keyword>
<keyword>ch</keyword>
<keyword>cl</keyword>
<keyword>dh</keyword>
<keyword>dl</keyword>
<keyword>cs</keyword>
<keyword>ds</keyword>
<keyword>ss</keyword>
<keyword>es</keyword>
</context>
</include>
</context>
</definitions>
</language>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment