⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tde.shl

📁 一个开源著名的TDE编辑器源代码
💻 SHL
📖 第 1 页 / 共 5 页
字号:
; Instruction set taken from intel.doc that I got from their site (I think).
; Only goes up to the 486. Not sure if I have all variations. Corrections
; greatly appreciated.
; 8086
keyword AH       AL       BH       BL       CH       CL       DH       DL
keyword AX       BX       CX       DX       SI       DI       SP       BP
keyword CS       DS       ES       SS       SEGCS    SEGDS    SEGES    SEGSS
keyword AAA      CMPSW    JAE      JNE      LDS      MUL      REPNZ    STC
keyword AAD      CWD      JB       JNG      LEA      NEG      RET      STD
keyword AAM      DAA      JBE      JNGE     LES      NOP      RETF     STI
keyword AAS      DAS      JC       JNL      LOCK     NOT      RETN     STOS
keyword ADC      DEC      JCXZ     JNLE     LODS     OR       ROL      STOSB
keyword ADD      DIV      JE       JNO      LODSB    OUT      ROR      STOSW
keyword AND      ESC      JG       JNP      LODSW    POP      SAHF     SUB
keyword CALL     HLT      JGE      JNS      LOOP     POPF     SAL      TEST
keyword CBW      IDIV     JL       JNZ      LOOPE    PUSH     SHL      WAIT
keyword CLC      IMUL     JLE      JO       LOOPZ    PUSHF    SAR      FWAIT
keyword CLD      IN       JMP      JP       LOOPNZ   RCL      SBB      XCHG
keyword CLI      INC      JNA      JPE      LOOPNE   RCR      SCAS     XLAT
keyword CMC      INT      JNAE     JPO      MOV      REP      SCASB    XLATB
keyword CMP      INTO     JNB      JS       MOVS     REPE     SCASW    XOR
keyword CMPS     IRET     JNBE     JZ       MOVSB    REPZ     SHL
keyword CMPSB    JA       JNC      LAHF     MOVSW    REPNE    SHR
; 80188
keyword BOUND    INS      INSW     OUTS     OUTSB    OUTSW    POPA     PUSHA
keyword ENTER    INSB     LEAVE
; 286
keyword ARPL     LAR      LIDT     LMSW     LTR      SIDT     SMSW     VERR
keyword CLTS     LGDT     LLDT     LSL      SGDT     SLDT     STR      VERW
; 386
keyword EAX      EBX      ECX      EDX      EDI      ESI      EBP      ESP
keyword FS       GS       SEGFS    SEGGS
keyword CR0      CR2      CR3      TR4      TR5      TR6      TR7
keyword DR0      DR1      DR2      DR3      DR6      DR7
keyword BSF      CWDE     MOVSD    PUSHFD   SETE     SETNB    SETNLE   SETPE
keyword BSR      INSD     MOVSX    SCASD    SETG     SETNBE   SETNO    SETPO
keyword BT       IRETD    MOVZX    SETA     SETGE    SETNC    SETNP    SETS
keyword BTC      JECXZ    OUTSD    SETAE    SETL     SETNE    SETNS    SETZ
keyword BTR      LFS      POPAD    SETB     SETLE    SETNG    SETNZ    SHLD
keyword BTS      LGS      POPFD    SETBE    SETNA    SETNGE   SETO     SHRD
keyword CDQ      LODSD    PUSHAD   SETC     SETNAE   SETNL    SETP     STOSD
keyword CMPSD    LSS
; 486
keyword BSWAP    CMPXCHG  INVD     INVLPG   WBINVD

; Maths/numeric coprocessor. Taken from "BC45\DOC\TD_ASM.TXT".
; 8087/287
keyword ST
keyword F2XM1    FCOMP    FFREE    FINIT    FLDL2E   FNSTS    FSQRT    FSUBRP
keyword FABS     FCOMPP   FIACOM   FIST     FLDL2T   FPATAN   FST      FTST
keyword FADD     FDECSTP  FIACOMP  FISTP    FLDLG2   FPREM    FSTCW    FWAIT
keyword FADDP    FDISI    FIADD    FISUB    FLDLN2   FPTAN    FSTENV   FXAM
keyword FBLD     FDIV     FIDIV    FISUBR   FLDPI    FRNDINT  FSTP     FXCH
keyword FBSTP    FDIVP    FIDIVR   FLD      FLDZ     FRSTOR   FSTSW    FXTRACT
keyword FCHS     FDIVR    FILD     FLD1     FMUL     FSAVENT  FSUB     FYL2X
keyword FCLEX    FDIVRP   FIMUL    FLDCWR   FMULP    FSCALE   FSUBP    FYL2XPI
keyword FCOM     FENI     FINCSTP  FLDENV   FNOP     FSETPM   FSUBR
; 387
keyword FCOS     FPREM1   FSIN     FSINCOS  FUCOM    FUCOMP   FUCOMPP


;----------------------------------   AT&T   ----------------------------------

; Assembly - AT&T style (GAS). Taken from RHIDE's syntaxhl.shl file.
language  at&t
pattern   *.s
case      ignore
hex       0x-
string    """"
character ' 0
; Let's treat (some) labels as functions
function  :
preprocessor #
comment   /* */
startword ._
inword    _
Keyword  aaa aad aam aas adc adcb adcw adcl add addb addw addl and andb andw
Keyword  andl arpl bound bsf bsr bswap bt btc btr bts lcall call cbw cbtw cdq
Keyword  cltd clc cld cli clts cmc cmp cmpb cmpw cmpl cmps cmpsb cmpsw cmpsl
Keyword  cmpxchg cwd cwtd cwde cwtl daa das dec decb decw decl div divw divl
Keyword  enter esc hlt idiv idivw idivl imul imulw imull in inb inw inl inc
Keyword  incb incw incl ins insb insw insl int into invd invlpg iret iretd ja
Keyword  jae jb jbe jc je jg jge jl jle jmp jna jnae jnb jnbe jnc jne jng
Keyword  jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz jcxz jecxz jmp
Keyword  ljmp lahf lar lds lea leaw leal leave les lfs lgdt lidt lgs lldt
Keyword  lmsw lock lods lodsb lodsw lodsl loop loope loopz loopnz loopne lsl
Keyword  lss ltr mov movb movw movl movs movsb movsw movsl movsx movsbl
Keyword  movsbw movswl movzx movzbl movzbw movzwl mul mulw mull neg negb negw
Keyword  negl nop not notb notw notl or orb orw orl out outb outw outl outs
Keyword  outsb outsw outsl pop popb popw popl popa popad popf popfd push
Keyword  pushb pushw pushl pusha pushad pushf pushfd rcl rclb rclw rcll rcr
Keyword  rcrb rcrw rcrl rep repe repz repne repnz ret retf rol rolb rolw roll
Keyword  ror rorb rorw rorl sahf sal salb salw sall shl shlb shlw shll sar
Keyword  sarb sarw sarl sbb sbbb sbbw sbbl scas scasb scasw scasl setae setnb
Keyword  setb setnae setbe setna sete setz setne setnz setl setnge setge
Keyword  setnl setle setng setg setnle sets setns setc setnc seto setno setp
Keyword  setpe setnp setpo sgdt sidt shl shlb shlw shll shr shrb shrw shrl
Keyword  shld shldb shldw shldl shrd shrdb shrdw shrdl sldt smsw stc std sti
Keyword  stos stosb stosw stosl str sub subb subw subl test testb testw testl
Keyword  verr verw wait fwait wbinvd xchg xchgb xchgw xchgl xlat xlatb xor
Keyword  xorb xorw xorl ax eax ah al bx ebx bh bl cx ecx ch cl dx edx dh dl
Keyword  si esi di edi sp esp bp ebp cs ds ss es fs gs
; GAS specific
Keyword  .abort .align .app-file .ascii .asciz .balign .byte .comm
Keyword  .data .def .desc .dim .double .eject .else .endef .endif .equ
Keyword  .extern .file .fill .float .global .hword .ident .if .include
Keyword  .int .irp .irpc .lcomm .lflags .line .ln .linkonce .list .long
Keyword  .macro .mri .nolist .octa .org .p2align .psize .quad .rept
Keyword  .sbttl .scl .section .set .short .single .size .skip .space
Keyword  .stabd .stabn .stabs .string .tag .text .title .type .val .word
Keyword  .globl
; Floating point
keyword st
keyword f2xm1 fabs fadd faddp fiadd fbld fbstp fchs fclex fnclex fcmovb fcmove
keyword fcmovbe fcmovu fcmovnb fcmovne fcmovnbe fcmovnu fcom fcomp fcompp fcomi
keyword fcomip fucomi fucomip fcos fdecstp fdiv fdivp fidiv fdivr fdivrp fidivr
keyword ffree ficom ficomp fild fincstp finit fninit fist fistp fld fld1 fldl2t
keyword fldl2e fldpi fldlg2 fldln2 fldz fldcw fldenv fmul fmulp fimul fnop
keyword fpatan fprem fprem1 fptan frndint frstor fsave fnsave fscale fsin
keyword fsincos fsqrt fst fstp fstcw fnstcw fstenv fnstenv fstsw fnstsw fsub
keyword fsubp fisub fsubr fsubrp fisubr ftst fucom fucomp fucompp fwait fxam
keyword fxch fxtract fyl2x fyl2xp1
; Suffixed versions - not all of them, just the ones I've come across
keyword faddl fildl fistpl fldl fldt fmull fstpl fstpt


;----------------------------------   NASM   ----------------------------------

; Assembly - NASM style.
language  nasm
pattern   *.nsm *.nas *.mac
case      ignore
binary    -b
octal     -o            ; or -q
hex       -h            ; or 0x-, $-
string    """" spanline \
character ' 0  spanline \
; Let's treat (some) labels as functions.
function :
comment ";"
; . can start and be in a word, but let's leave it as a separator.
startword _?@$
inword _$#@~?
innumber xa-fnolist ; in case 0x is used and to get around 0.nolist

; Pseudo-instructions
preprocessor db dw dd dq dt resb resw resd resq rest
preprocessor incbin equ times
preprocessor seg wrt strict
preprocessor byte word dword qword tword near far long short nosplit to
preprocessor a16 a32 o16 o32

; Preprocessor
; Since the % symbol forms part of the name define these explicitly.
;preprocessor % spanline \
startword %
preprocessor %define %idefine %xdefine %xidefine %undef
preprocessor %assign %iassign %strlen %substr
preprocessor %macro %imacro %endmacro %endm %rotate nolist %clear
preprocessor %if %elif %else %endif
preprocessor %ifdef %ifndef %elifdef %elifndef
preprocessor %ifmacro %ifnmacro %elifmacro %elifnmacro
preprocessor %ifctx %ifnctx %elifctx %elifnctx
preprocessor %ifidn %ifnidn %elifidn %elifnidn
preprocessor %ifidni %ifnidni %elifidni %elifnidni
preprocessor %ifnum %ifnnum %elifnum %elifnnum
preprocessor %ifid %ifnid %elifid %elifnid
preprocessor %ifstr %ifnstr %elifstr %elifnstr
preprocessor %error
preprocessor %rep %exitrep %endrep
preprocessor %include
preprocessor %push %pop %repl
preprocessor %line
preprocessor %arg %stacksize %local

; Standard macros
preprocessor __NASM_MAJOR__ __NASM_MINOR__ __NASM_SUBMINOR__
preprocessor ___NASM_PATCHLEVEL__ __NASM_VERSION_ID__ __NASM_VER__
preprocessor __FILE__ __LINE__
preprocessor struc endstruc istruc at iend
preprocessor align alignb
preprocessor __SECT__

; Directives
preprocessor bits use16 use32 section segment absolute extern global common cpu
preprocessor list warning debug
; bin, obj, win32, coff
preprocessor org progbits nobits start vstart follows vfollows map
preprocessor private public stack class overlay flat group
preprocessor uppercase import export resident nodata parm
preprocessor code text data rdata bss info

; Registers
keyword al cl dl bl ah ch dh bh
keyword ax cx dx bx sp bp si di
keyword eax ecx edx ebx esp ebp esi edi
keyword es cs ss ds fs gs
keyword st0 st1 st2 st3 st4 st5 st6 st7
keyword mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7
keyword cr0 cr2 cr3 cr4
keyword dr0 dr1 dr2 dr3 dr6 dr7
keyword tr3 tr4 tr5 tr6 tr7

; Condition codes
keyword o no  b c nae nb nc ae  e z ne nz  be na nbe a
keyword s ns  p pe np po  l nge  nl ge  le ng nle g
keyword cxz ecxz

; Instruction set (adapted from insns.dat, v1.46)
; 8086
keyword aaa aad aam aas adc add and call cbw clc cld cli cmc cmp cmpsb cmpsw cwd
keyword daa das dec div fwait hlt idiv imul in inc int int03 int3 into iret
keyword iretw ja jae jb jbe jc jcxz je jg jge jl jle jmp jna jnae jnb jnbe jnc
keyword jne jng jnge jnl jnle jno jnp jns jnz jo jp jpe jpo js jz lahf lds lea
keyword les lodsb lodsw loop loope loopne loopnz loopz mov movsb movsw mul neg
keyword nop not or out pop popf popfw push pushf pushfw rcl rcr ret retf retn
keyword rol ror sahf sal salc sar sbb scasb scasw shl shr stc std sti stosb
keyword stosw sub test wait xchg xlat xlatb xor
keyword lock rep repe repz repne repnz
; 80186
keyword bound enter insb insw leave outsb outsw popa popaw pusha pushaw
; 286
keyword arpl clts lar lgdt lidt lldt lmsw loadall286 lsl ltr sgdt sidt sldt smsw
keyword str ud0 ud1 ud2 verr verw
; 386
keyword bsf bsr bt btc btr bts cdq cmpsd cwde ibts icebp insd int01 int1 iretd
keyword jecxz lfs lgs loadall lodsd lss movsd movsx movzx outsd popad popfd
keyword pushad pushfd scasd shld shrd smi stosd umov xbts seta setae setb setbe
keyword setc sete setg setge setl setle setna setnae setnb setnbe setnc setne
keyword setng setnge setnl setnle setno setnp setns setnz seto setp setpe setpo
keyword sets setz
; 486
keyword bswap cmpxchg486 invd invlpg rsdc rsldt rsts smintold svdc svldt svts
keyword wbinvd xadd
; Pentium (586, including MMX/3DNow!)
keyword cmpxchg cmpxchg8b cpuid emms movd movq packssdw packsswb packuswb paddb
keyword paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn paveb
keyword pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id
keyword pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1
keyword pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw
keyword pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb por
keyword prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb
keyword psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq
keyword punpckhwd punpcklbw punpckldq punpcklwd pxor rdmsr rdtsc rsm wrmsr
;  AMD Enhanced 3DNow! (Athlon) instructions
keyword pf2iw pfnacc pfpnacc pi2fw pswapd
; P6 (686, PentiumPro, P2)
keyword cmova cmovae cmovb cmovbe cmovc cmove cmovg cmovge cmovl cmovle cmovna
keyword cmovnae cmovnb cmovnbe cmovnc cmovne cmovng cmovnge cmovnl cmovnle
keyword cmovno cmovnp cmovns cmovnz cmovo cmovp cmovpe cmovpo cmovs cmovz rdpmc
keyword rdshr smint syscall sysenter sysexit sysret wrshr xstore
; P3 (Pentium III, Katmai)
keyword prefetchnta prefetcht0 prefetcht1 prefetcht2 sfence
;  Katmai Streaming SIMD instructions (SSE -- a.k.a. KNI, XMM, MMX2)
keyword addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss
keyword cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss
keyword cmpps cmpss cmpunordps cmpunordss comiss cvtpi2ps cvtps2pi cvtsi2ss
keyword cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss
keyword movaps movhlps movhps movlhps movlps movmskps movntps movss movups mulps
keyword mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr
keyword subps subss ucomiss unpckhps unpcklps xorps
;  New MMX
keyword maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub
keyword pmovmskb pmulhuw psadbw pshufw
; P4 (Pentium 4, Williamette)
;  Willamette SSE2 Cacheability Instructions
keyword clflush lfence maskmovdqu mfence movntdq movnti movntpd pause
;  Willamette MMX instructions (SSE2 SIMD Integer Instructions)
keyword movdq2q movdqa movdqu movq2dq packssdw packsswb packuswb paddd paddq
keyword paddsb paddsw paddusb paddusw paddw pand pandn pavgb pavgw pcmpeqd
keyword pcmpeqw pcmpgtb pcmpgtd pcmpgtw pextrw pinsrw pmaddwd pmaxsw pmaxub
keyword pminsw pminub pmovmskb pmulhuw pmulhw pmullw pmuludq por psadbw pshufd
keyword pshufhw pshuflw pslld pslldq psllq psllw psrad psraw psrld psrldq psrlq
keyword psrlw psubb psubd psubq psubsb psubsw psubusb psubusw psubw punpckhbw
keyword punpckhdq punpckhqdq punpckhwd punpcklbw punpckldq punpcklqdq punpcklwd
keyword pxor
;  Willamette Streaming SIMD instructions (SSE2)
keyword addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd
keyword cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd
keyword cmppd cmpsd cmpunordpd cmpunordsd comisd cvtdq2pd cvtdq2ps cvtpd2dq
keyword cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd
keyword cvtss2sd cvttpd2dq cvttpd2pi cvttps2dq cvttsd2si divpd divsd maxpd maxsd
keyword minpd minsd movapd movhpd movlpd movmskpd movsd movupd mulpd mulsd orpd
keyword shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd
; Prescott
keyword monitor mwait
;  Prescott New Instructions (SSE3)
keyword addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup
keyword movsldup
; IA64
keyword jmpe

; Floating point
; 8087
keyword f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcom fcomp fcompp fdecstp
keyword fdisi fdiv fdivp fdivr fdivrp feni ffree fiadd ficom ficomp fidiv fidivr
keyword fild fimul fincstp finit fist fistp fisub fisubr fld fld1 fldcw fldenv
keyword fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni
keyword fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fptan frndint
keyword frstor fsave fscale fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr
keyword fsubrp ftst fxam fxch fxtract fyl2x fyl2xp1
; 287
keyword ffreep fsetpm

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -