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

📄 tdedist.shl

📁 一个开源著名的TDE编辑器源代码
💻 SHL
📖 第 1 页 / 共 5 页
字号:
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
; 387
keyword fcos fprem1 fsin fsincos fucom fucomp fucompp
; P6 (686, PentiumPro, P2)
keyword fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcomi
keyword fcomip fucomi fucomip fxrstor fxsave
; Prescott
keyword fisttp

; My macros and defines.

; Just because cxz can't be inverted doesn't mean cxnz shouldn't be.
; I created a macro to do just that.
keyword cxnz

; Additional pseudo-instructions
green dflg ib id iw dc d$ dz dln dl$ dlz CSTR STR$

; Inlined far call and jump
function icallf ijmpf

; Ignore inlined variable
comment  i

; Number processing
integer  hl bit

; Interrupts
function intr amis disk dos exit kbd mous mpx prch prnt$ vid win

; Suffixed instructions
keyword adcb adcw addb addw andb andw cmpb cmpw decb decw divb divw idivb idivw
keyword imulw imuld incb incw movb movw mulb mulw negb negw notb notw orb orw
keyword popw pushb pushw rclb rclw rcrb rcrw rolb rolw rorb rorw salb salw sarb
keyword sarw sbbb sbbw shlb shlw shrb shrw subb subw testb testw xorb xorw
keyword adcd  addd  andd cmpd decd divd  idivd
keyword imuld incd  movl muld negd notd  ord
keyword popd  pushd rcld rcrd rold rord  sald
keyword sard  sbbd  shll shrl subd testd xord
keyword callf jmpf

; "Enhanced" instructions
bright_magenta ld ldw ldd ldhl swap swapw swapd
bright_magenta sthl scs sds ses sfs sgs sss mmov mmovb mmovw mmovl mmovd
bright_magenta cmov cmovby cmovw cmovd
bright_magenta zero zerob zerow zerod isz iszb iszw iszd
bright_magenta jzr jzb jzw jzd jnzr jnzb jnzw jnzd
bright_magenta tflg sflg cflg iflg jflg jnflg
bright_magenta tbit tbits sbit cbit ibit cfbit
bright_magenta save savea restore uses return
bright_magenta retif retifb retifw retifd
bright_magenta jif jifb jifw jifd

; Control statements
brown ifz ifzb ifzw ifzd ifnz ifnzb ifnzw ifnzd
brown ifflg ifnflg
brown ifn if andif elif else fi
brown ifnb ifb andifb elifb fib
brown ifnw ifw andifw elifw fiw
brown ifnd ifd andifd elifd fid
brown repeat repeatr repeatb repeatw repeatd
brown until untilb untilw untild next nextb nextw nextd
brown repeat0 repeat0r repeat0b repeat0w repeat0d
brown rptlmt rptlmtb rptlmtw rptlmtd
brown for forb forw ford for0 for0b for0w for0d
brown do when while is whileb whilew whiled isb isw isd wend
brown whilst whilstb whilstw whilstd
brown break breakb breakw breakd cntnu cntnub cntnuw cntnud

; Pseudo-operators
symbol zr zb zw zd nzr nzb nzw nzd


;---------------------------------   Pascal   ---------------------------------

; Let's treat the TURBO Pascal {$ compiler directive as a preprocessor.
; These are the reserved words from Borland Pascal 7.0 (but GNU Pascal is
; probably very similar), as well as the predefined types.
language pascal
pattern *.pas *.p
case    ignore
keyword and          div      function        label    packed     string  while
keyword array        do       goto            library  procedure  then    with
keyword asm          downto   if              mod      program    to      xor
keyword begin        else     implementation  nil      record     type
keyword case         end      in              not      repeat     unit
keyword const        exports  inherited       object   set        until
keyword constructor  file     inline          of       shl        uses
keyword destructor   for      interface       or       shr        var
keyword absolute assembler export external far forward index interrupt near
keyword private public resident virtual
keyword break continue exit
keyword byte char integer longint pointer real shortint word
keyword boolean bytebool longbool wordbool
keyword false true maxint maxlongint
comment { }
comment (* *)
comment //

⌨️ 快捷键说明

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