You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
187 lines
10 KiB
Plaintext
187 lines
10 KiB
Plaintext
15 years ago
|
<?xml version="1.0" encoding="UTF-8"?>
|
||
|
<Scheme>
|
||
|
<keyword-classes>
|
||
|
<keyword-class name="cpu_instruction1">
|
||
|
aaa aad aam aas adc add and call cbw
|
||
|
clc cld cli cmc cmp cmps cmpsb cmpsw cwd daa das dec div esc hlt
|
||
|
idiv imul in inc int into iret ja jae jb jbe jc jcxz je 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 lds lea les lods lodsb lodsw loop
|
||
|
loope loopew loopne loopnew loopnz loopnzw loopw loopz loopzw
|
||
|
mov movs movsb movsw mul neg nop not or out pop popf push pushf
|
||
|
rcl rcr ret retf retn rol ror sahf sal sar sbb scas scasb scasw
|
||
|
shl shr stc std sti stos stosb stosw sub test wait xchg xlat
|
||
|
xlatb xor
|
||
|
bound enter ins insb insw leave outs outsb outsw popa pusha pushw
|
||
|
arpl lar lsl sgdt sidt sldt smsw str verr verw clts lgdt lidt lldt lmsw ltr
|
||
|
bsf bsr bt btc btr bts cdq cmpsd cwde insd iretd iretdf iretf
|
||
|
jecxz lfs lgs lodsd loopd looped loopned loopnzd loopzd lss
|
||
|
movsd movsx movzx outsd popad popfd pushad pushd pushfd scasd 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 shld shrd stosd
|
||
|
bswap cmpxchg invd invlpg wbinvd xadd
|
||
|
lock rep repe repne repnz repz</keyword-class>
|
||
|
<!-- these are mostly non-MMX/SSE/SSE2 486+ instructions -->
|
||
|
<keyword-class name="cpu_instruction2">
|
||
|
cflush cpuid emms femms
|
||
|
cmovo cmovno cmovb cmovc cmovnae cmovae cmovnb cmovnc
|
||
|
cmove cmovz cmovne cmovnz cmovbe cmovna cmova cmovnbe
|
||
|
cmovs cmovns cmovp cmovpe cmovnp cmovpo cmovl cmovnge
|
||
|
cmovge cmovnl cmovle cmovng cmovg cmovnle
|
||
|
cmpxchg486 cmpxchg8b
|
||
|
loadall loadall286 ibts icebp int1 int3 int01 int03 iretw
|
||
|
popaw popfw pushaw pushfw rdmsr rdpmc rdshr rdtsc
|
||
|
rsdc rsldt rsm rsts salc smi smint smintold svdc svldt svts
|
||
|
syscall sysenter sysexit sysret ud0 ud1 ud2 umov xbts wrmsr wrshr</keyword-class>
|
||
|
<!-- # fpu instructions, updated for 486+ -->
|
||
|
<keyword-class name="fpu_instruction">
|
||
|
f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp 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 fldenvw fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul
|
||
|
fmulp fnclex fndisi fneni fninit fnop fnsave fnsavew fnstcw fnstenv
|
||
|
fnstenvw fnstsw fpatan fprem fptan frndint frstor frstorw fsave
|
||
|
fsavew fscale fsqrt fst fstcw fstenv fstenvw fstp fstsw fsub fsubp
|
||
|
fsubr fsubrp ftst fwait fxam fxch fxtract fyl2x fyl2xp1
|
||
|
fsetpm fcos fldenvd fnsaved fnstenvd fprem1 frstord fsaved fsin fsincos
|
||
|
fstenvd fucom fucomp fucompp fcomi fcomip ffreep
|
||
|
fcmovb fcmove fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu</keyword-class>
|
||
|
<!-- # these are MMX, SSE, SSE2 instructions -->
|
||
|
<keyword-class name="ext_instruction">
|
||
|
addpd addps addsd addss andpd andps andnpd andnps
|
||
|
cmpeqpd cmpltpd cmplepd cmpunordpd cmpnepd cmpnltpd cmpnlepd cmpordpd
|
||
|
cmpeqps cmpltps cmpleps cmpunordps cmpneps cmpnltps cmpnleps cmpordps
|
||
|
cmpeqsd cmpltsd cmplesd cmpunordsd cmpnesd cmpnltsd cmpnlesd cmpordsd
|
||
|
cmpeqss cmpltss cmpless cmpunordss cmpness cmpnltss cmpnless cmpordss
|
||
|
comisd comiss cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps
|
||
|
cvtpi2pd cvtpi2ps cvtps2dq cvtps2pd cvtps2pi cvtss2sd cvtss2si
|
||
|
cvtsd2si cvtsd2ss cvtsi2sd cvtsi2ss
|
||
|
cvttpd2dq cvttpd2pi cvttps2dq cvttps2pi cvttsd2si cvttss2si
|
||
|
divpd divps divsd divss fxrstor fxsave ldmxscr lfence mfence
|
||
|
maskmovdqu maskmovdq maxpd maxps paxsd maxss minpd minps minsd minss
|
||
|
movapd movaps movdq2q movdqa movdqu movhlps movhpd movhps movd movq
|
||
|
movlhps movlpd movlps movmskpd movmskps movntdq movnti movntpd movntps
|
||
|
movntq movq2dq movsd movss movupd movups mulpd mulps mulsd mulss
|
||
|
orpd orps packssdw packsswb packuswb paddb paddsb paddw paddsw
|
||
|
paddd paddsiw paddq paddusb paddusw pand pandn pause paveb pavgb pavgw
|
||
|
pavgusb pdistib pextrw pcmpeqb pcmpeqw pcmpeqd pcmpgtb pcmpgtw pcmpgtd
|
||
|
pf2id pf2iw pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul
|
||
|
pmachriw pmaddwd pmagw pmaxsw pmaxub pminsw pminub pmovmskb
|
||
|
pmulhrwc pmulhriw pmulhrwa pmulhuw pmulhw pmullw pmuludq
|
||
|
pmvzb pmvnzb pmvlzb pmvgezb pfnacc pfpnacc por prefetch prefetchw
|
||
|
prefetchnta prefetcht0 prefetcht1 prefetcht2 pfrcp pfrcpit1 pfrcpit2
|
||
|
pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pf2iw pinsrw psadbw pshufd
|
||
|
pshufhw pshuflw pshufw psllw pslld psllq pslldq psraw psrad
|
||
|
psrlw psrld psrlq psrldq psubb psubw psubd psubq psubsb psubsw
|
||
|
psubusb psubusw psubsiw pswapd punpckhbw punpckhwd punpckhdq punpckhqdq
|
||
|
punpcklbw punpcklwd punpckldq punpcklqdq pxor rcpps rcpss
|
||
|
rsqrtps rsqrtss sfence shufpd shufps sqrtpd sqrtps sqrtsd sqrtss
|
||
|
stmxcsr subpd subps subsd subss ucomisd ucomiss
|
||
|
unpckhpd unpckhps unpcklpd unpcklps xorpd xorps</keyword-class>
|
||
|
<keyword-class name="register">
|
||
|
ah al ax bh bl bp bx ch cl cr0 cr2 cr3 cr4 cs
|
||
|
cx dh di dl dr0 dr1 dr2 dr3 dr6 dr7 ds dx eax ebp ebx ecx edi edx
|
||
|
es esi esp fs gs si sp ss st tr3 tr4 tr5 tr6 tr7
|
||
|
st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
|
||
|
xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7</keyword-class>
|
||
|
<!-- # masm directives -->
|
||
|
<keyword-class name="directive">
|
||
|
.186 .286 .286c .286p .287 .386 .386c .386p .387 .486 .486p
|
||
|
.8086 .8087 .alpha .break .code .const .continue .cref .data .data?
|
||
|
.dosseg .else .elseif .endif .endw .err .err1 .err2 .errb
|
||
|
.errdef .errdif .errdifi .erre .erridn .erridni .errnb .errndef
|
||
|
.errnz .exit .fardata .fardata? .if .lall .lfcond .list .listall
|
||
|
.listif .listmacro .listmacroall .model .no87 .nocref .nolist
|
||
|
.nolistif .nolistmacro .radix .repeat .sall .seq .sfcond .stack
|
||
|
.startup .tfcond .type .until .untilcxz .while .xall .xcref
|
||
|
.xlist alias align assume catstr comm comment db dd df dosseg dq
|
||
|
dt dup dw echo else elseif elseif1 elseif2 elseifb elseifdef elseifdif
|
||
|
elseifdifi elseife elseifidn elseifidni elseifnb elseifndef end
|
||
|
endif endm endp ends eq equ even exitm extern externdef extrn for
|
||
|
forc ge goto group gt high highword if if1 if2 ifb ifdef ifdif
|
||
|
ifdifi ife ifidn ifidni ifnb ifndef include includelib instr invoke
|
||
|
irp irpc label le length lengthof local low lowword lroffset
|
||
|
lt macro mask mod .msfloat name ne offset opattr option org %out
|
||
|
page popcontext proc proto ptr public purge pushcontext record
|
||
|
repeat rept seg segment short size sizeof sizestr struc struct
|
||
|
substr subtitle subttl textequ this title type typedef union while width</keyword-class>
|
||
|
<keyword-class name="directive_operand">
|
||
|
$ ? @b @f addr basic byte c carry? dword
|
||
|
far far16 fortran fword near near16 overflow? parity? pascal qword
|
||
|
real4 real8 real10 sbyte sdword sign? stdcall sword syscall tbyte
|
||
|
vararg word zero? flat near32 far32
|
||
|
abs all assumes at casemap common compact
|
||
|
cpu dotname emulator epilogue error export expr16 expr32 farstack flat
|
||
|
forceframe huge language large listing ljmp loadds m510 medium memory
|
||
|
nearstack nodotname noemulator nokeyword noljmp nom510 none nonunique
|
||
|
nooldmacros nooldstructs noreadonly noscoped nosignextend nothing
|
||
|
notpublic oldmacros oldstructs os_dos para private prologue radix
|
||
|
readonly req scoped setif2 smallstack tiny use16 use32 uses</keyword-class>
|
||
|
<!-- # nasm directives, mostly complete, does not parse properly
|
||
|
# the following: %!<env>, %%, %+, %+n %-n, %{n} -->
|
||
|
<keyword-class name="directive_nasm">
|
||
|
db dw dd dq dt resb resw resd resq rest incbin equ times
|
||
|
%define %idefine %xdefine %xidefine %undef %assign %iassign
|
||
|
%strlen %substr %macro %imacro %endmacro %rotate .nolist
|
||
|
%if %elif %else %endif %ifdef %ifndef %elifdef %elifndef
|
||
|
%ifmacro %ifnmacro %elifmacro %elifnmacro %ifctk %ifnctk %elifctk %elifnctk
|
||
|
%ifidn %ifnidn %elifidn %elifnidn %ifidni %ifnidni %elifidni %elifnidni
|
||
|
%ifid %ifnid %elifid %elifnid %ifstr %ifnstr %elifstr %elifnstr
|
||
|
%ifnum %ifnnum %elifnum %elifnnum %error %rep %endrep %exitrep
|
||
|
%include %push %pop %repl struct endstruc istruc at iend align alignb
|
||
|
%arg %stacksize %local %line
|
||
|
bits use16 use32 section absolute extern global common cpu org
|
||
|
section group import export</keyword-class>
|
||
|
<keyword-class name="directive_operand_nasm">
|
||
|
a16 a32 o16 o32 byte word dword nosplit $ $$ seq wrt
|
||
|
flat large small .text .data .bss near far
|
||
|
%0 %1 %2 %3 %4 %5 %6 %7 %8 %9</keyword-class>
|
||
|
|
||
|
<keyword-class name="asm_instructions">
|
||
|
<include-class name="cpu_instruction1"/>
|
||
|
<include-class name="cpu_instruction2"/>
|
||
|
</keyword-class>
|
||
|
|
||
|
<keyword-class name="asm_directives">
|
||
|
<include-class name="directive"/>
|
||
|
<include-class name="directive_nasm"/>
|
||
|
</keyword-class>
|
||
|
|
||
|
<keyword-class name="asm_operands">
|
||
|
<include-class name="directive_operand"/>
|
||
|
<include-class name="directive_operand_nasm"/>
|
||
|
</keyword-class>
|
||
|
|
||
|
</keyword-classes>
|
||
|
|
||
|
<language name="asm" title="Assembler" folding="false">
|
||
|
<lexer name="asm" />
|
||
|
<use-keywords>
|
||
|
<keyword key="0" name="CPU Instructions" class="asm_instructions"/>
|
||
|
<keyword key="1" name="FPU Instructions" class="fpu_instruction"/>
|
||
|
<keyword key="2" name="Registers" class="register"/>
|
||
|
<keyword key="3" name="Directives" class="asm_directives"/>
|
||
|
<keyword key="4" name="Directive Operands" class="asm_operands"/>
|
||
|
<keyword key="5" name="Extended Instructions" class="ext_instruction"/>
|
||
|
</use-keywords>
|
||
|
<use-styles>
|
||
|
<style name="Default" key="32" fore="#808080" />
|
||
|
<style name="Whitespace" key="0" />
|
||
|
<style name="Comment" key="1" class="comment" />
|
||
|
<style name="Number" key="2" class="number" />
|
||
|
<style name="String" key="3" class="string" />
|
||
|
<style name="Operator" key="4" class="operator" />
|
||
|
<style name="Identifier" key="5" class="identifier" />
|
||
|
<style name="CPU instruction" key="6" class="keyword" />
|
||
|
<style name="FPU instruction" key="7" class="keyword" bold="true" />
|
||
|
<style name="Register" key="8" fore="46aa03" bold="true" />
|
||
|
<style name="Directive" key="9" class="keyword" />
|
||
|
<style name="Directive Operand" key="10" class="keyword" />
|
||
|
<!-- <style name="Comment block (GNU as /*...*/ syntax, unimplemented)" key="11" class="commentbox" /> -->
|
||
|
<style name="Single Quote String" key="12" class="string" />
|
||
|
<style name="Unclosed String" key="13" fore="000000" back="E0C0E0" eolfilled="true" />
|
||
|
<style name="Extended Instructions" key="14" fore="B00040" />
|
||
|
</use-styles>
|
||
|
</language>
|
||
|
</Scheme>
|