# Assembler language definition file
#
# Author: Andre Simon
#   Mail: andre.simon1@gmx.de
#   Date: 6.1.2003
# ------------------------------------------
# This file is a part of highlight, a free source code converter released under the GPL.
#
# The file is used to describe keywords and special symbols of programming languages.
# See README in the highlight directory for details.
#
# New definition files for future releases of highlight are always appreciated ;)
#
# ----------
# andre.simon1@gmx.de
# http:/www.andre-simon.de/

$DESCRIPTION=Assembler

$KEYWORDS(kwa)= aaa aad aam aas adc add and arpl bound bsf bsr bswap bt btc btr bts call cbw cdq clc 
cld cli clts cmc cmp cmps cmpsb cmpsd cmpsw cmpxchg cwd cwde daa das dec div enter esc f2xm1 fabs 
fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp feni 
ffree fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisub fisubr fld fld1 
fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop 
fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin 
fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomp fucompp fwait 
fxam fxch fxtract fyl2x fyl2xp1 hlt idiv imul in inc insb insd insw int into invd invlpg iret iretd 
ja jae jb jbe jc jcxz je jecxz jg jge jl jle jmp jna jnae jnb jnbe  jnc jne jng jnge jnl jnle jno 
jnp jns jnz jo jp jpe jpo js jz lahf lar lds lea leave les lfs lgdt lgs lidt lldt lmsw lock lods 
lodsb lodsd lodsw loop loopd loopde loopdne loopdnz loopdz loope loopne loopnz loopz lsl lss ltr
mov movs movsb movsd movsw movsx movzx mul neg nop not or out outsb outsd outsw pop popa popad
popf popfd push pusha pushad pushf pushfd rcl rcr rep repe repne repnz repz ret retf retn rol ror
sahf sal sar sbb scas scasb scasd scasw segcs segds seges segfs seggs segss seta setae setb setbe
setc sete setg setge setl setle setna setnae setnb setnbe setnc setne setng setnge setnl setnle
setno setnp setns setnz seto setp setpe setpo sets setz sgdt shl shld shr shrd sidt sldt smsw stc
std sti stos stosb stosd stosw str sub test verr verw wait wbinvd xadd xchg xlat xor assume
omment db dd dq dt dw end endm endp ends eq equ exitm ex trn far ge group gt include label large
le length local lt macro mask name near org page proc public purge record rept seg segment short
size small struc subttl symtype this title width

$KEYWORDS(kwb)=  ah al and ax bh bl bp bx byte ch cl cs cx dh di dl ds dword dx eax ebp ebx ecx edi edx
eip es esi esp fs gs high low mod not offset or ptr qword shl shr si sp ss st tbyte type word xor

$DIGIT=regex((?:0x|0X)[0-9a-fA-F]+|\d*[\.\_]?\d+(?:[eE][\-\+]\d+)?[hHlLuU]*)

$SL_COMMENT=;

# for Pascal inline assembly
$ML_COMMENT={ }

$STRINGDELIMITERS=" '

$IGNORECASE=true

$SYMBOLS= ( ) [ ] , : & | < > !  = / *  %  + - @
