;
; GRDP
;
; Copyright(c) LADsoft
;
; David Lindauer, camille@bluegrass.net
;
;
; opcom.asm
;
; text for assembly/disassembly
;
	;MASM MODE
	.model small
	.386p

	.data
; This is a table of mnemonics for the dissassembler
;
	public	opn_cwde
	public	opn_cdq
	public	opn_add
	public	opn_push
	public	opn_pop
	public	opn_or
	public	opn_adc
	public	opn_sbb
	public	opn_and
	public	opn_daa
	public	opn_sub
	public	opn_das
	public	opn_xor
	public	opn_aaa
	public	opn_cmp
	public	opn_aas
	public	opn_inc
	public	opn_dec
	public	opn_pusha
	public	opn_popa
	public	opn_pushad
	public	opn_popad
	public	opn_bound
	public	opn_arpl
	public	opn_imul
	public	opn_insb
	public	opn_ins
	public	opn_outsb
	public	opn_outs
	public	opn_insd
	public	opn_outsd
	public	opn_insw
	public	opn_outsw
	public	opn_jo
	public	opn_jno
	public	opn_jc
	public	opn_jnae
	public	opn_jnc
	public	opn_jna
	public	opn_jnbe
	public	opn_jae
	public	opn_je
	public	opn_jne
	public	opn_jpe
	public	opn_jpo
	public	opn_jnle
	public	opn_jnl
	public	opn_jnge
	public	opn_jng
	public	opn_jb
	public	opn_jnb
	public	opn_jz
	public	opn_jnz
	public	opn_jbe
	public	opn_ja
	public	opn_js
	public	opn_jns
	public	opn_jp
	public	opn_jnp
	public	opn_jl
	public	opn_jge
	public	opn_jle
	public	opn_jg
	public	opn_test
	public	opn_xchg
	public	opn_mov
	public	opn_lea
	public	opn_nop
	public	opn_cbw
	public	opn_cwd
	public	opn_call
	public	opn_wait
	public	opn_fwait
	public	opn_pushf
	public	opn_popf
	public	opn_pushfd
	public	opn_popfd
	public	opn_sahf
	public	opn_lahf
	public	opn_movs
	public	opn_cmps
	public	opn_stos
	public	opn_lods
	public	opn_scas
	public	opn_movsb
	public	opn_cmpsb
	public	opn_stosb
	public	opn_lodsb
	public	opn_scasb
	public	opn_movsw
	public	opn_cmpsw
	public	opn_stosw
	public	opn_lodsw
	public	opn_scasw
	public	opn_movsd
	public	opn_cmpsd
	public	opn_stosd
	public	opn_lodsd
	public	opn_scasd
	public	opn_rol
	public	opn_ror
	public	opn_rcl
	public	opn_rcr
	public	opn_shl
	public	opn_shr
	public	opn_sar
	public	opn_ret
	public	opn_les
	public	opn_lds
	public	opn_enter
	public	opn_retf
	public	opn_int
	public	opn_into
	public	opn_iret
	public	opn_leave
	public	opn_aam
	public	opn_aad
	public	opn_xlat
	public	opn_xlatb
	public	opn_loopnz
	public	opn_loopz
	public	opn_loopne
	public	opn_loope
	public	opn_loop
	public	opn_jcxz
	public	opn_in
	public	opn_out
	public	opn_jmp
	public	opn_lock
	public	opn_repnz
	public	opn_repz
	public	opn_hlt
	public	opn_cmc
	public	opn_not
	public	opn_neg
	public	opn_mul
	public	opn_div
	public	opn_idiv
	public	opn_clc
	public	opn_stc
	public	opn_cli
	public	opn_sti
	public	opn_cld
	public	opn_std
	public	opn_movsx
	public	opn_movzx
	public	opn_lfs
	public	opn_lgs
	public	opn_lss
	public	opn_clts
	public	opn_shld
	public	opn_shrd
	public	opn_bsf
	public	opn_bsr
	public	opn_bt
	public	opn_bts
	public	opn_btr
	public	opn_btc
	public	opn_ibts
	public	opn_xbts
	public	opn_setc
	public	opn_setnae
	public	opn_setnc
	public	opn_setna
	public	opn_setnbe
	public	opn_setae
	public	opn_sete
	public	opn_setne
	public	opn_setpe
	public	opn_setpo
	public	opn_setnle
	public	opn_setnl
	public	opn_setnge
	public	opn_setng
	public	opn_seto
	public	opn_setno
	public	opn_setb
	public	opn_setnb
	public	opn_setz
	public	opn_setnz
	public	opn_setbe
	public	opn_seta
	public	opn_sets
	public	opn_setns
	public	opn_setp
	public	opn_setnp
	public	opn_setl
	public	opn_setge
	public	opn_setle
	public	opn_setg
	public	opn_lar
	public	opn_lsl
	public	opn_lgdt
	public	opn_lidt
	public	opn_lldt
	public	opn_lmsw
	public	opn_ltr
	public	opn_sgdt
	public	opn_sidt
	public	opn_sldt
	public	opn_smsw
	public	opn_str
	public	opn_verr
	public	opn_verw
	public	opn_fnop
	public	opn_fchs
	public	opn_fabs
	public	opn_ftst
	public	opn_fxam
	public	opn_fld1
	public	opn_fldl2t
	public	opn_fldl2e
	public	opn_fldpi
	public	opn_fldlg2
	public	opn_fldln2
	public	opn_fldz
	public	opn_f2xm1
	public	opn_fyl2x
	public	opn_fptan
	public	opn_fpatan
	public	opn_fprem1
	public	opn_fxtract
	public	opn_fdecstp
	public	opn_fincstp
	public	opn_fprem
	public	opn_fyl2xp1
	public	opn_fsqrt
	public	opn_fsincos
	public	opn_frndint
	public	opn_fscale
	public	opn_fsin
	public	opn_fcos
	public	opn_fucompp
	public	opn_feni
	public	opn_fdisi
	public	opn_fclex
	public	opn_finit
	public	opn_fsetpm
	public	opn_fcompp
	public	opn_fld
	public	opn_fxch
	public	opn_fstp
	public	opn_esc
	public	opn_fldenv
	public	opn_fldcw
	public	opn_fnstenv
	public	opn_fnstcw
	public	opn_ffree
	public	opn_fst
	public	opn_fucom
	public	opn_fucomp
	public	opn_frstor
	public	opn_fnsave
	public	opn_fnstsw
	public	opn_fbld
	public	opn_fild
	public	opn_fbstp
	public	opn_fistp
	public	opn_fmul
	public	opn_fcom
	public	opn_fsub
	public	opn_fsubr
	public	opn_fdiv
	public	opn_fdivr
	public	opn_fadd
	public	opn_fcomp
	public	opn_fiadd
	public	opn_fimul
	public	opn_ficom
	public	opn_ficomp
	public	opn_fisub
	public	opn_fisubr
	public	opn_fidiv
	public	opn_fidivr
	public	opn_fist
	public	opn_faddp
	public	opn_fmulp
	public	opn_fdivp
	public	opn_fdivrp
	public	opn_fsubp
	public	opn_fsubrp
	public	opn_wbinvd
	public	opn_invd
	public	opn_bswap
	public	regs
	public	psegs
	public	crreg
	public	drreg
	public	trreg
	public	sudreg
	public	scales
	public	stalone
	public	st_repz
	public	st_repnz
	public	base0
	public	base1
	public	base2
	public	base3
	public	base4
	public	base5
	public	base6
	public	base7
	public	st0
	public	st1
	public	st2
	public	st3
	public	st4
	public	st5
	public	byptr
	public	dwptr
	public	woptr
	public	theptr
	public	stsreg
	public	based
	public	sts
	public	opn_cmovo
	public	opn_cmovno
	public	opn_cmovb
	public	opn_cmovnb
	public	opn_cmovz
	public	opn_cmovnz
	public	opn_cmovbe
	public	opn_cmova
	public	opn_cmovs
	public	opn_cmovns
	public	opn_cmovp
	public	opn_cmovnp
	public	opn_cmovl
	public	opn_cmovge
	public	opn_cmovle
	public	opn_cmovg
	PUBLIC  opn_cmpxchg
	PUBLIC  opn_cmpxchg8b
	PUBLIC	opn_cpuid
	PUBLIC	opn_rdmsr
	PUBLIC	opn_rdtsc
	PUBLIC	opn_rdpmc
	PUBLIC	opn_rsm
	PUBLIC	opn_ud2
	PUBLIC	opn_wrmsr
	PUBLIC	opn_xadd

opn_cwde db	"cwde",0
opn_cdq	db	"cdq",0
opn_add	db	"add",0
opn_push	db	"push",0
opn_pop	db	"pop",0
opn_or	db	"or",0
opn_adc	db	"adc",0
opn_sbb	db	"sbb",0
opn_and	db	"and",0
opn_daa	db	"daa",0
opn_sub	db	"sub",0
opn_das	db	"das",0
opn_xor	db	"xor",0
opn_aaa	db	"aaa",0
opn_cmp	db	"cmp",0
opn_aas	db	"aas",0
opn_inc	db	"inc",0
opn_dec	db	"dec",0
opn_pusha	db	"pusha",0
opn_popa	db	"popa",0
opn_pushad	db	"pushad",0
opn_popad	db	"popad",0
opn_bound	db	"bound",0
opn_arpl	db	"arpl",0
opn_imul	db	"imul",0
opn_insb	db	"insb",0
opn_insw	db	"insw",0
opn_insd	db	"insd",0
opn_ins	db	"ins",0
opn_outsb	db	"outsb",0
opn_outsw	db	"outsw",0
opn_outsd	db	"outsd",0
opn_outs	db	"outs",0
opn_jc	db	"jc",0
opn_jnae	db	"jnae",0
opn_jnc	db	"jnc",0
opn_jna	db	"jna",0
opn_jnbe	db	"jnbe",0
opn_jae	db	"jae",0
opn_je	db	"je",0
opn_jne	db	"jne",0
opn_jpo	db	"jpo",0
opn_jpe	db	"jpe",0
opn_jnle	db	"jnle",0
opn_jnl	db	"jnl",0
opn_jnge	db	"jnge",0
opn_jng	db	"jng",0
opn_jo	db	"jo",0
opn_jno	db	"jno",0
opn_jb	db	"jb",0
opn_jnb	db	"jnb",0
opn_jz	db	"jz",0
opn_jnz	db	"jnz",0
opn_jbe	db	"jbe",0
opn_ja	db	"ja",0
opn_js	db	"js",0
opn_jns	db	"jns",0
opn_jp	db	"jp",0
opn_jnp	db	"jnp",0
opn_jl	db	"jl",0
opn_jge	db	"jge",0
opn_jle	db	"jle",0
opn_jg	db	"jg",0
opn_test	db	"test",0
opn_xchg	db	"xchg",0
opn_mov	db	"mov",0
opn_lea	db	"lea",0
opn_nop	db	"nop",0
opn_cbw	db	"cbw",0
opn_cwd	db	"cwd",0
opn_call	db	"call",0
opn_wait	db	"wait",0
opn_fwait	db	"fwait",0
opn_pushf	db	"pushf",0
opn_popf	db	"popf",0
opn_pushfd	db	"pushfd",0
opn_popfd	db	"popfd",0
opn_sahf	db	"sahf",0
opn_lahf	db	"lahf",0
opn_movs	db	"movs",0
opn_cmps	db	"cmps",0
opn_stos	db	"stos",0
opn_lods	db	"lods",0
opn_scas	db	"scas",0
opn_movsb	db	"movsb",0
opn_cmpsb	db	"cmpsb",0
opn_stosb	db	"stosb",0
opn_lodsb	db	"lodsb",0
opn_scasb	db	"scasb",0
opn_movsw	db	"movsw",0
opn_cmpsw	db	"cmpsw",0
opn_stosw	db	"stosw",0
opn_lodsw	db	"lodsw",0
opn_scasw	db	"scasw",0
opn_movsd	db	"movsd",0
opn_cmpsd	db	"cmpsd",0
opn_stosd	db	"stosd",0
opn_lodsd	db	"lodsd",0
opn_scasd	db	"scasd",0
opn_rol	db	"rol",0
opn_ror	db	"ror",0
opn_rcl	db	"rcl",0
opn_rcr	db	"rcr",0
opn_shl	db	"shl",0
opn_shr	db	"shr",0
opn_sar	db	"sar",0
opn_ret	db	"ret",0
opn_les	db	"les",0
opn_lds	db	"lds",0
opn_enter	db	"enter",0
opn_retf	db	"retf",0
opn_int	db	"int",0
opn_into	db	"into",0
opn_iret	db	"iret",0
opn_leave	db	"leave",0
opn_aam	db	"aam",0
opn_aad	db	"aad",0
opn_xlat	db	"xlat",0
opn_xlatb	db	"xlatb",0
opn_loopnz	db	"loopnz",0
opn_loopz	db	"loopz",0
opn_loopne	db	"loopne",0
opn_loope	db	"loope",0
opn_loop	db	"loop",0
opn_jcxz	db	"jcxz",0
opn_in	db	"in",0
opn_out	db	"out",0
opn_jmp	db	"jmp",0
opn_lock	db	"lock",0
opn_repnz	db	"repnz",0
opn_repz	db	"repz",0
opn_hlt	db	"hlt",0
opn_cmc	db	"cmc",0
opn_not	db	"not",0
opn_neg	db	"neg",0
opn_mul	db	"mul",0
opn_div	db	"div",0
opn_idiv	db	"idiv",0
opn_clc	db	"clc",0
opn_stc	db	"stc",0
opn_cli	db	"cli",0
opn_sti	db	"sti",0
opn_cld	db	"cld",0
opn_std	db	"std",0
opn_movsx	db	"movsx",0
opn_movzx	db	"movzx",0
opn_lfs	db	"lfs",0
opn_lgs	db	"lgs",0
opn_lss	db	"lss",0
opn_clts	db	"clts",0
opn_shld	db	"shld",0
opn_shrd	db	"shrd",0
opn_bsf	db	"bsf",0
opn_bsr	db	"bsr",0
opn_bt	db	"bt",0
opn_bts	db	"bts",0
opn_btr	db	"btr",0
opn_btc	db	"btc",0
opn_ibts	db	"ibts",0
opn_xbts	db	"xbts",0
opn_setc	db	"setc",0
opn_setnae	db	"setnae",0
opn_setnc	db	"setnc",0
opn_setna	db	"setna",0
opn_setnbe	db	"setnbe",0
opn_setae	db	"setae",0
opn_sete	db	"sete",0
opn_setne	db	"setne",0
opn_setpo	db	"setpo",0
opn_setpe	db	"setpe",0
opn_setnle	db	"setnle",0
opn_setnl	db	"setnl",0
opn_setnge	db	"setnge",0
opn_setng	db	"setng",0
opn_seto	db	"seto",0
opn_setno	db	"setno",0
opn_setb	db	"setb",0
opn_setnb	db	"setnb",0
opn_setz	db	"setz",0
opn_setnz	db	"setnz",0
opn_setbe	db	"setbe",0
opn_seta	db	"seta",0
opn_sets	db	"sets",0
opn_setns	db	"setns",0
opn_setp	db	"setp",0
opn_setnp	db	"setnp",0
opn_setl	db	"setl",0
opn_setge	db	"setge",0
opn_setle	db	"setle",0
opn_setg	db	"setg",0
opn_lar	db	"lar",0
opn_lsl	db	"lsl",0
opn_lgdt	db	"lgdt",0
opn_lidt	db	"lidt",0
opn_lldt	db	"lldt",0
opn_lmsw	db	"lmsw",0
opn_ltr	db	"ltr",0
opn_sgdt	db	"sgdt",0
opn_sidt	db	"sidt",0
opn_sldt	db	"sldt",0
opn_smsw	db	"smsw",0
opn_str	db	"str",0
opn_verr	db	"verr",0
opn_verw	db	"verw",0
opn_fnop	db	"fnop",0
opn_fchs	db	"fchs",0
opn_fabs	db	"fabs",0
opn_ftst	db	"ftst",0
opn_fxam	db	"fxam",0
opn_fld1	db	"fld1",0
opn_fldl2t	db	"fldl2t",0
opn_fldl2e	db	"fldl2e",0
opn_fldpi	db	"fldpi",0
opn_fldlg2	db	"fldlg2",0
opn_fldln2	db	"fldln2",0
opn_fldz	db	"fldz",0
opn_f2xm1	db	"f2xm1",0
opn_fyl2x	db	"fyl2x",0
opn_fptan	db	"fptan",0
opn_fpatan	db	"fpatan",0
opn_fprem1	db	"fprem1",0
opn_fxtract	db	"fxtract",0
opn_fdecstp	db	"fdecstp",0
opn_fincstp	db	"fincstp",0
opn_fprem	db	"fprem",0
opn_fyl2xp1	db	"fyl2xp1",0
opn_fsqrt	db	"fsqrt",0
opn_fsincos	db	"fsincos",0
opn_frndint	db	"frndint",0
opn_fscale	db	"fscale",0
opn_fsin	db	"fsin",0
opn_fcos	db	"fcos",0
opn_fucompp	db	"fucompp",0
opn_feni	db	"feni",0
opn_fdisi	db	"fdisi",0
opn_fclex	db	"fnclex",0
opn_finit	db	"fninit",0
opn_fsetpm	db	"fsetpm",0
opn_fcompp	db	"fcompp",0
opn_fld	db	"fld",0
opn_fxch	db	"fxch",0
opn_fstp	db	"fstp",0
opn_esc	db	"esc",0
opn_fldenv	db	"fldenv",0
opn_fldcw	db	"fldcw",0
opn_fnstenv	db	"fnstenv",0
opn_fnstcw	db	"fnstcw",0
opn_ffree	db	"ffree",0
opn_fst	db	"fst",0
opn_fucom	db	"fucom",0
opn_fucomp	db	"fucomp",0
opn_frstor	db	"frstor",0
opn_fnsave	db	"fnsave",0
opn_fnstsw	db	"fnstsw",0
opn_fbld	db	"fbld",0
opn_fild	db	"fild",0
opn_fbstp	db	"fbstp",0
opn_fistp	db	"fistp",0
opn_fmul	db	"fmul",0
opn_fcom	db	"fcom",0
opn_fsub	db	"fsub",0
opn_fsubr	db	"fsubr",0
opn_fdiv	db	"fdiv",0
opn_fdivr	db	"fdivr",0
opn_fadd	db	"fadd",0
opn_fcomp	db	"fcomp",0
opn_fiadd	db	"fiadd",0
opn_fimul	db	"fimul",0
opn_ficom	db	"ficom",0
opn_ficomp	db	"ficomp",0
opn_fisub	db	"fisub",0
opn_fisubr	db	"fisubr",0
opn_fidiv	db	"fidiv",0
opn_fidivr	db	"fidivr",0
opn_fist	db	"fist",0
opn_faddp	db	"faddp",0
opn_fmulp	db	"fmulp",0
opn_fsubp	db	"fsubp",0
opn_fdivp	db	"fdivp",0
opn_fsubrp	db	"fsubrp",0
opn_fdivrp	db	"fdivrp",0
opn_wbinvd	db	"wb"
opn_invd	db	"invd",0
opn_bswap	db	"bswap",0
opn_cmovo	db	"cmovo",0
opn_cmovno	db	"cmovno",0
opn_cmovb	db	"cmovb",0
opn_cmovnb	db	"cmovnb",0
opn_cmovz	db	"cmovz",0
opn_cmovnz	db	"cmovnz",0
opn_cmovbe	db	"cmovbe",0
opn_cmova	db	"cmova",0
opn_cmovs	db	"cmovs",0
opn_cmovns	db	"cmovns",0
opn_cmovp	db	"cmovp",0
opn_cmovnp	db	"cmovnp",0
opn_cmovl	db	"cmovl",0
opn_cmovge	db	"cmovge",0
opn_cmovle	db	"cmovle",0
opn_cmovg	db	"cmovg",0
opn_cmpxchg	db	"cmpxchg",0
opn_cmpxchg8b	db	"cmpxchg8b",0
opn_cpuid	db	"cpuid",0
opn_rdmsr	db	"rdmsr",0
opn_rdpmc	db	"rdpmc",0
opn_rdtsc	db	"rdtsc",0
opn_rsm		db	"rsm",0
opn_ud2		db	"ud2",0
opn_wrmsr	db	"wrmsr",0
opn_xadd	db	"xadd",0

regs	db	"alcldlblahchdhbhaxcxdxbxspbpsidi"
psegs	db	"escsssdsfsgs"
crreg	db	"CR01234567"
drreg	db	"DR01234567"
trreg	db	"TR01234567"
sudreg	db	"?R????????"
scales	db	"  2*4*8*"
stalone	db	"st",0
st_repz	db	"repz ",0
st_repnz db	"repnz ",0


base0	db	"bx+si",0
base1	db	"bx+di",0
base2	db	"bp+si",0
base3	db	"bp+di",0
base4	db	"si",0
base5	db	"di",0
base6	db	"bp",0
base7	db	"bx",0
st0	db	"dword",0	; Should be DWORD for MATH, FWORD for jmp/call
st1	db	"dword",0
st2	db	"qword",0
st3	db	"word",0
st4	db	"tbyte"
st5	db	0
byptr	db	"byte ptr ",0
dwptr	db	"d"
woptr	db	"word"
theptr	db	" ptr ",0
stsreg	db	"st(",0
based	dw	base0,base1,base2,base3,base4,base5,base6,base7
sts	dw	st0,st1,st2,st3,st4,st5,st5,st5

;	mov	eax,"wde"
	END