;	SCCSID = @(#)ldebasm.inc	11.1 87/10/29

dbDATA	segment

OPTAB	db	11111111B		; DB
	dw	IGROUP:db_OPER
	db	11111111B		; dw
	dw	IGROUP:DW_OPER
	db	11111111B		; COMMENT
	dw	IGROUP:ASSEMLOOP
	db	0 * 8			; ADD
	dw	IGROUP:GROUP2
	db	2 * 8			; ADC
	dw	IGROUP:GROUP2
	db	5 * 8			; SUB
	dw	IGROUP:GROUP2
	db	3 * 8			; SBB
	dw	IGROUP:GROUP2
	db	6 * 8			; XOR
	dw	IGROUP:GROUP2
	db	1 * 8			; OR
	dw	IGROUP:GROUP2
	db	4 * 8			; AND
	dw	IGROUP:GROUP2
	db	00110111B		; AAA
	dw	IGROUP:NO_OPER
	db	11010101B		; AAD
	dw	IGROUP:AA_OPER
	db	11010100B		; AAM
	dw	IGROUP:AA_OPER
	db	00111111B		; AAS
	dw	IGROUP:NO_OPER
	db	2 * 8			; CALL
	dw	IGROUP:CALL_OPER
	db	10011000B		; CBW
	dw	IGROUP:NO_OPER
	db	11111000B		; CLC
	dw	IGROUP:NO_OPER
	db	11111100B		; CLD
	dw	IGROUP:NO_OPER
	db	11111010B		; DIM
	dw	IGROUP:NO_OPER
	db	11110101B		; CMC
	dw	IGROUP:NO_OPER
	db	10100110B		; CMPB
	dw	IGROUP:NO_OPER
	db	10100111B		; CMPW
	dw	IGROUP:NO_OPER
	db	7 * 8			; CMP
	dw	IGROUP:GROUP2
	db	10011001B		; CWD
	dw	IGROUP:NO_OPER
	db	00100111B		; DAA
	dw	IGROUP:NO_OPER
	db	00101111B		; DAS
	dw	IGROUP:NO_OPER
	db	1 * 8			; DEC
	dw	IGROUP:DCINC_OPER
	db	6 * 8			; DIV
	dw	IGROUP:GROUP1
	db	11011000B		; ESC
	dw	IGROUP:ESC_OPER
	db	00001001B		; FXCH
	dw	IGROUP:FGROUPP
	db	00101000B		; FFREE
	dw	IGROUP:FGROUPP
	db	11011001B		; FCOMPP
	dw	IGROUP:FDE_OPER
	db	00000011B		; FCOMP
	dw	IGROUP:FGROUPX	; Exception to normal P instructions
	db	00000010B		; FCOM
	dw	IGROUP:FGROUPX
	db	00010011B		; FICOMP
	dw	IGROUP:FGROUPZ
	db	00010010B		; FICOM
	dw	IGROUP:FGROUPZ
	db	11010000B		; FNOP
	dw	IGROUP:FD9_OPER
	db	11100000B		; FCHS
	dw	IGROUP:FD9_OPER
	db	11100001B		; FABS
	dw	IGROUP:FD9_OPER
	db	11100100B		; FTST
	dw	IGROUP:FD9_OPER
	db	11100101B		; FXAM
	dw	IGROUP:FD9_OPER
	db	11101001B		; FLDL2T
	dw	IGROUP:FD9_OPER
	db	11101010B		; FLDL2E
	dw	IGROUP:FD9_OPER
	db	11101100B		; FLDLG2
	dw	IGROUP:FD9_OPER
	db	11101101B		; FLDLN2
	dw	IGROUP:FD9_OPER
	db	11101011B		; FLDPI
	dw	IGROUP:FD9_OPER
	db	11101000B		; FLD1
	dw	IGROUP:FD9_OPER
	db	11101110B		; FLDZ
	dw	IGROUP:FD9_OPER
	db	11110000B		; F2XM1
	dw	IGROUP:FD9_OPER
	db	11111001B		; FYL2XP1
	dw	IGROUP:FD9_OPER
	db	11110001B		; FYL2X
	dw	IGROUP:FD9_OPER
	db	11110010B		; FPTAN
	dw	IGROUP:FD9_OPER
	db	11110011B		; FPATAN
	dw	IGROUP:FD9_OPER
	db	11110100B		; FXTRACT
	dw	IGROUP:FD9_OPER
	db	11110110B		; FDECSTP
	dw	IGROUP:FD9_OPER
	db	11110111B		; FINCSTP
	dw	IGROUP:FD9_OPER
	db	11111000B		; FPREM
	dw	IGROUP:FD9_OPER
	db	11111010B		; FSQRT
	dw	IGROUP:FD9_OPER
	db	11111100B		; FRNDINT
	dw	IGROUP:FD9_OPER
	db	11111101B		; FSCALE
	dw	IGROUP:FD9_OPER
	db	11100011B		; FINIT
	dw	IGROUP:Fdb_OPER
	db	11100001B		; FDISI
	dw	IGROUP:Fdb_OPER
	db	11100000B		; FENI
	dw	IGROUP:Fdb_OPER
	db	11100010B		; FCLEX
	dw	IGROUP:Fdb_OPER
	db	00111100B		; FBLD
	dw	IGROUP:FGROUPB
	db	00111110B		; FBSTP
	dw	IGROUP:FGROUPB
	db	00001101B		; FLDCW
	dw	IGROUP:FGROUP3W
	db	00001111B		; FSTCW
	dw	IGROUP:FGROUP3W
	db	00101111B		; FSTSW
	dw	IGROUP:FGROUP3W
	db	00001110B		; FSTENV
	dw	IGROUP:FGROUP3
	db	00001100B		; FLDENV
	dw	IGROUP:FGROUP3
	db	00101110B		; FSAVE
	dw	IGROUP:FGROUP3
	db	00101100B		; FRSTOR
	dw	IGROUP:FGROUP3
	db	00110000B		; FADDP
	dw	IGROUP:FGROUPP
	db	00000000B		; FADD
	dw	IGROUP:FGROUP
	db	00010000B		; FIADD
	dw	IGROUP:FGROUPZ
	db	00110100B		; FSUBRP
	dw	IGROUP:FGROUPP
	db	00000101B		; FSUBR
	dw	IGROUP:FGROUPDS
	db	00110101B		; FSUBP
	dw	IGROUP:FGROUPP
	db	00000100B		; FSUB
	dw	IGROUP:FGROUPDS
	db	00010101B		; FISUBR
	dw	IGROUP:FGROUPZ
	db	00010100B		; FISUB
	dw	IGROUP:FGROUPZ
	db	00110001B		; FMULP
	dw	IGROUP:FGROUPP
	db	00000001B		; FMUL
	dw	IGROUP:FGROUP
	db	00010001B		; FIMUL
	dw	IGROUP:FGROUPZ
	db	00110110B		; FDIVRP
	dw	IGROUP:FGROUPP
	db	00000111B		; FDIVR
	dw	IGROUP:FGROUPDS
	db	00110111B		; FDIVP
	dw	IGROUP:FGROUPP
	db	00000110B		; FDIV
	dw	IGROUP:FGROUPDS
	db	00010111B		; FIDIVR
	dw	IGROUP:FGROUPZ
	db	00010110B		; FIDIV
	dw	IGROUP:FGROUPZ
	db	10011011B		; FWAIT
	dw	IGROUP:NO_OPER
	db	00011000B		; FILD
	dw	IGROUP:FGROUPZ
	db	00001000B		; FLD
	dw	IGROUP:FGROUPX
	db	00001011B		; FSTP
	dw	IGROUP:FGROUPX
	db	00101010B		; FST
	dw	IGROUP:FGROUPX
	db	00011011B		; FISTP
	dw	IGROUP:FGROUPZ
	db	00011010B		; FIST
	dw	IGROUP:FGROUPZ
	db	11110100B		; HLT
	dw	IGROUP:NO_OPER
	db	7 * 8			; IDIV
	dw	IGROUP:GROUP1
	db	5 * 8			; IMUL
	dw	IGROUP:GROUP1
	db	0 * 8			; INC
	dw	IGROUP:DCINC_OPER
	db	11001110B		; INTO
	dw	IGROUP:NO_OPER
	db	11001100B		; INTM
	dw	IGROUP:INT_OPER
	db	11101100B		; IN
	dw	IGROUP:IN_OPER
	db	11001111B		; IRET
	dw	IGROUP:NO_OPER
	db	01110111B		; JNBE
	dw	IGROUP:DISP8_OPER
	db	01110011B		; JAE
	dw	IGROUP:DISP8_OPER
	db	01110111B		; JA
	dw	IGROUP:DISP8_OPER
	db	11100011B		; JCXZ
	dw	IGROUP:DISP8_OPER
	db	01110011B		; JNB
	dw	IGROUP:DISP8_OPER
	db	01110110B		; JBE
	dw	IGROUP:DISP8_OPER
	db	01110010B		; JB
	dw	IGROUP:DISP8_OPER
	db	01110011B		; JNC
	dw	IGROUP:DISP8_OPER
	db	01110010B		; JC
	dw	IGROUP:DISP8_OPER
	db	01110010B		; JNAE
	dw	IGROUP:DISP8_OPER
	db	01110110B		; JNA
	dw	IGROUP:DISP8_OPER
	db	01110100B		; JZ
	dw	IGROUP:DISP8_OPER
	db	01110100B		; JE
	dw	IGROUP:DISP8_OPER
	db	01111101B		; JGE
	dw	IGROUP:DISP8_OPER
	db	01111111B		; JG
	dw	IGROUP:DISP8_OPER
	db	01111111B		; JNLE
	dw	IGROUP:DISP8_OPER
	db	01111101B		; JNL
	dw	IGROUP:DISP8_OPER
	db	01111110B		; JLE
	dw	IGROUP:DISP8_OPER
	db	01111100B		; JL
	dw	IGROUP:DISP8_OPER
	db	01111100B		; JNGE
	dw	IGROUP:DISP8_OPER
	db	01111110B		; JNG
	dw	IGROUP:DISP8_OPER
	db	4 * 8			; JMP
	dw	IGROUP:JMP_OPER
	db	01110101B		; JNZ
	dw	IGROUP:DISP8_OPER
	db	01110101B		; JNE
	dw	IGROUP:DISP8_OPER
	db	01111010B		; JPE
	dw	IGROUP:DISP8_OPER
	db	01111011B		; JPO
	dw	IGROUP:DISP8_OPER
	db	01111011B		; JNP
	dw	IGROUP:DISP8_OPER
	db	01111001B		; JNS
	dw	IGROUP:DISP8_OPER
	db	01110001B		; JNO
	dw	IGROUP:DISP8_OPER
	db	01110000B		; JO
	dw	IGROUP:DISP8_OPER
	db	01111000B		; JS
	dw	IGROUP:DISP8_OPER
	db	01111010B		; JP
	dw	IGROUP:DISP8_OPER
	db	10011111B		; LAHF
	dw	IGROUP:NO_OPER
	db	11000101B		; LDS
	dw	IGROUP:L_OPER
	db	10001101B		; LEA
	dw	IGROUP:L_OPER
	db	11000100B		; LES
	dw	IGROUP:L_OPER
	db	11110000B		; LOCK
	dw	IGROUP:NO_OPER
	db	10101100B		; LODB
	dw	IGROUP:NO_OPER
	db	10101101B		; LOdw
	dw	IGROUP:NO_OPER
	db	11100000B		; LOOPNZ
	dw	IGROUP:DISP8_OPER
	db	11100001B		; LOOPZ
	dw	IGROUP:DISP8_OPER
	db	11100000B		; LOOPNE
	dw	IGROUP:DISP8_OPER
	db	11100001B		; LOOPE
	dw	IGROUP:DISP8_OPER
	db	11100010B		; LOOP
	dw	IGROUP:DISP8_OPER
	db	10100100B		; MOVB
	dw	IGROUP:NO_OPER
	db	10100101B		; MOVW
	dw	IGROUP:NO_OPER
	db	11000110B		; MOV
	dw	IGROUP:MOV_OPER
	db	4 * 8			; MUL
	dw	IGROUP:GROUP1
	db	3 * 8			; NEG
	dw	IGROUP:GROUP1
	db	10010000B		; NOP
	dw	IGROUP:NO_OPER
	db	2 * 8			; NOT
	dw	IGROUP:GROUP1
	db	11101110B		; OUT
	dw	IGROUP:OUT_OPER
	db	10011101B		; POPF
	dw	IGROUP:NO_OPER
	db	0 * 8			; POP
	dw	IGROUP:POP_OPER
	db	10011100B		; PUSHF
	dw	IGROUP:NO_OPER
	db	6 * 8			; PUSH
	dw	IGROUP:PUSH_OPER
	db	2 * 8			; RCL
	dw	IGROUP:ROTOP
	db	3 * 8			; RCR
	dw	IGROUP:ROTOP
	db	11110011B		; REPZ
	dw	IGROUP:NO_OPER
	db	11110010B		; REPNZ
	dw	IGROUP:NO_OPER
	db	11110011B		; REPE
	dw	IGROUP:NO_OPER
	db	11110010B		; REPNE
	dw	IGROUP:NO_OPER
	db	11110011B		; REP
	dw	IGROUP:NO_OPER
	db	11001011B		; RETF
	dw	IGROUP:GET_DATA16
	db	11000011B		; RET
	dw	IGROUP:GET_DATA16
	db	0 * 8			; ROL
	dw	IGROUP:ROTOP
	db	1 * 8			; ROR
	dw	IGROUP:ROTOP
	db	10011110B		; SAHF
	dw	IGROUP:NO_OPER
	db	7 * 8			; SAR
	dw	IGROUP:ROTOP
	db	10101110B		; SCAB
	dw	IGROUP:NO_OPER
	db	10101111B		; SCAW
	dw	IGROUP:NO_OPER
	db	4 * 8			; SHL
	dw	IGROUP:ROTOP
	db	5 * 8			; SHR
	dw	IGROUP:ROTOP
	db	11111001B		; STC
	dw	IGROUP:NO_OPER
	db	11111101B		; STD
	dw	IGROUP:NO_OPER
	db	11111011B		; EI
	dw	IGROUP:NO_OPER
	db	10101010B		; STOB
	dw	IGROUP:NO_OPER
	db	10101011B		; STOW
	dw	IGROUP:NO_OPER
	db	11110110B		; TEST
	dw	IGROUP:TST_OPER
	db	10011011B		; WAIT
	dw	IGROUP:NO_OPER
	db	10000110B		; XCHG
	dw	IGROUP:EX_OPER
	db	11010111B		; XLAT
	dw	IGROUP:NO_OPER
	db	00100110B		; ESSEG
	dw	IGROUP:NO_OPER
	db	00101110B		; CSSEG
	dw	IGROUP:NO_OPER
	db	00110110B		; SSSEG
	dw	IGROUP:NO_OPER
	db	00111110B		; DSSEG
	dw	IGROUP:NO_OPER

zzopcode label	byte
MAXOP	= (zzopcode-optab)/3

dbDATA	ends
