DOS-debug

Форк
0
/
DISTBL.INC 
400 строк · 17.8 Кб
1

2
;--- This file was generated by mktables.exe.
3

4
;--- compressed table of the opcode types.
5
;--- If the item has the format OT(xx), it refers to table 'oplists'.
6
;--- Otherwise it's an offset for internal table 'dis_jmp2'.
7

8
OTDATA segment
9

10
optypes label byte
11
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(40),OT(40)	; 00 - 07 (main opcode part)
12
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(41),  002h	; 08 - 0f
13
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(42),OT(42)	; 10 - 17
14
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),OT(43),OT(43)	; 18 - 1f
15
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 20 - 27
16
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 28 - 2f
17
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 30 - 37
18
	db OT(04),OT(04),OT(05),OT(05),OT(01),OT(01),  00Ah,OT(00)	; 38 - 3f
19
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 40 - 47
20
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 48 - 4f
21
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 50 - 57
22
	db OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11),OT(11)	; 58 - 5f
23
	db OT(00),OT(00),OT(07),OT(06),  00Ah,  00Ah,  00Ah,  00Ah	; 60 - 67
24
	db OT(35),OT(21),OT(36),OT(1F),OT(00),OT(00),OT(00),OT(00)	; 68 - 6f
25
	db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27)	; 70 - 77
26
	db OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27),OT(27)	; 78 - 7f
27
	db   004h,  004h,  000h,  004h,OT(04),OT(04),OT(05),OT(05)	; 80 - 87
28
	db OT(04),OT(04),OT(05),OT(05),OT(2A),OT(07),OT(2B),  004h	; 88 - 8f
29
	db OT(00),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E),OT(3E)	; 90 - 97
30
	db OT(00),OT(00),OT(0D),OT(00),OT(00),OT(00),OT(00),OT(00)	; 98 - 9f
31
	db OT(2C),OT(2C),OT(2D),OT(2D),OT(00),OT(00),OT(00),OT(00)	; a0 - a7
32
	db OT(01),OT(01),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; a8 - af
33
	db OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E),OT(2E)	; b0 - b7
34
	db OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F),OT(2F)	; b8 - bf
35
	db   004h,  004h,OT(3A),OT(00),OT(07),OT(07),  004h,  004h	; c0 - c7
36
	db OT(12),OT(00),OT(3A),OT(00),OT(25),OT(26),OT(00),OT(00)	; c8 - cf
37
	db   004h,  004h,  004h,  004h,OT(26),OT(26),  000h,OT(00)	; d0 - d7
38
	db   006h,  006h,  006h,  006h,  006h,  006h,  006h,  006h	; d8 - df
39
	db OT(27),OT(27),OT(27),OT(27),OT(23),OT(23),OT(32),OT(32)	; e0 - e7
40
	db OT(0C),OT(0C),OT(0D),OT(27),OT(24),OT(24),OT(33),OT(33)	; e8 - ef
41
	db   00Ah,  000h,  00Ah,  00Ah,OT(00),OT(00),  004h,  004h	; f0 - f7
42
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),  004h,  004h	; f8 - ff
43
	db OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02),OT(02)	; 100 - 107 (Intel group 1)
44
	db OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03),OT(03)	; 108 - 10f
45
	db OT(37),OT(37),OT(37),OT(37),OT(37),OT(37),  000h,OT(37)	; 110 - 117 (Intel group 2)
46
	db OT(38),OT(38),OT(38),OT(38),OT(38),OT(38),  000h,OT(38)	; 118 - 11f
47
	db OT(39),OT(39),OT(39),OT(39),OT(39),OT(39),  000h,OT(39)	; 120 - 127 (Intel group 2a)
48
	db OT(02),  000h,OT(10),OT(10),OT(10),OT(10),OT(10),OT(10)	; 128 - 12f (Intel group 3)
49
	db OT(10),OT(10),OT(28),OT(0E),OT(28),OT(0E),OT(28),  000h	; 130 - 137 (Intel group 5)
50
	db OT(28),OT(29),OT(29),OT(29),OT(29),OT(29),  000h,  000h	; 138 - 13f (Intel group 6)
51
	db OT(1D),OT(1D),OT(1D),OT(1D),OT(28),  000h,OT(29),OT(1D)	; 140 - 147 (Intel group 7)
52
	db OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13),OT(13)	; 148 - 14f (Coprocessor d8)
53
	db OT(15),OT(15),OT(1C),OT(1C),OT(15),OT(15),OT(15),OT(15)	; 150 - 157
54
	db OT(13),  000h,OT(13),OT(13),OT(1D),OT(19),OT(1D),OT(19)	; 158 - 15f (Coprocessor d9)
55
	db OT(1B),OT(1C),  008h,  000h,  008h,  008h,  008h,  008h	; 160 - 167
56
	db OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18),OT(18)	; 168 - 16f (Coprocessor da)
57
	db OT(15),OT(15),OT(15),OT(15),  000h,  008h,  000h,  000h	; 170 - 177
58
	db OT(18),  000h,OT(18),OT(18),  000h,OT(1A),  000h,OT(1A)	; 178 - 17f (Coprocessor db)
59
	db OT(15),OT(15),OT(15),OT(15),  008h,OT(1C),OT(1C),  000h	; 180 - 187
60
	db OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14),OT(14)	; 188 - 18f (Coprocessor dc)
61
	db OT(16),OT(16),  000h,  000h,OT(16),OT(16),OT(16),OT(16)	; 190 - 197
62
	db OT(14),  000h,OT(14),OT(14),OT(1D),  000h,OT(1D),OT(19)	; 198 - 19f (Coprocessor dd)
63
	db OT(1B),  000h,OT(1B),OT(1B),OT(1C),OT(1C),  000h,  000h	; 1a0 - 1a7
64
	db OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19),OT(19)	; 1a8 - 1af (Coprocessor de)
65
	db OT(17),OT(17),  000h,  008h,OT(17),OT(17),OT(17),OT(17)	; 1b0 - 1b7
66
	db OT(19),  000h,OT(19),OT(19),OT(1A),OT(0F),OT(1A),OT(0F)	; 1b8 - 1bf (Coprocessor df)
67
	db   000h,  000h,  000h,  000h,  008h,OT(1C),OT(1C),  000h	; 1c0 - 1c7
68
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),  000h	; 1c8 - 1cf (Coprocessor groups)
69
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1d0 - 1d7
70
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	; 1d8 - 1df
71
SPARSE_BASE	equ $ - optypes
72

73
;--- The rest of these are squeezed.
74
	db      0,  004h,  004h,OT(08),OT(08),OT(00),OT(00),OT(00)	;00
75
	db OT(46),OT(48),OT(47),OT(49),OT(4A),OT(4B),OT(00),OT(00)	;08
76
	db OT(00),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08)	;10
77
	db OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08),OT(08)	;18
78
if MMXSUPP
79
	db OT(08),OT(4C),OT(4E),OT(00),OT(4D),OT(4F),OT(0C),OT(0C)	;20
80
else
81
	db OT(08),0     ,0     ,OT(00),0     ,0     ,OT(0C),OT(0C)	;20
82
endif
83
	db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C)	;28
84
	db OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(0C),OT(3B),OT(3B)	;30
85
	db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B)	;38
86
	db OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(3B),OT(44),OT(44)	;40
87
	db OT(00),OT(0A),OT(3C),OT(3D),OT(45),OT(45),OT(00),OT(0A)	;48
88
	db OT(3C),OT(3D),OT(08),OT(04),OT(04),OT(07),OT(0A),OT(07)	;50
89
	db OT(07),OT(30),OT(31),  004h,OT(0A),OT(08),OT(08),OT(30)	;58
90
	db OT(31),OT(04),OT(04),  004h,OT(09),OT(09),OT(09),OT(09)	;60
91
	db OT(09),OT(09),OT(09),OT(09),OT(10),OT(10),OT(0B),OT(0B)	;68
92
	db OT(0B),OT(0B),OT(0F),OT(34),OT(02),OT(00),OT(00),OT(00)	;70
93
	db OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00),OT(00)	;78
94
	db OT(00),OT(1E)
95

96
OTDATA ends
97

98
P186	equ 1000h
99
P286	equ 2000h
100
P386	equ 3000h
101
P486	equ 4000h
102
P586	equ 5000h
103
P686	equ 6000h
104

105
	align 2
106

107
;--- compressed table of additional information.
108
;--- Bits 0-11 are the offset of the mnemonics table if
109
;--- the corresponding item in optypes is defined via OT();
110
;--- else it's a parameter for the optype processing.
111
;--- Bits 12-15 are the cpu which introduced this opcode.
112

113
opinfo label word
114
	dw  MN_ADD, MN_ADD, MN_ADD, MN_ADD	; 00
115
	dw  MN_ADD, MN_ADD, MN_PUSH, MN_POP	; 04
116
	dw  MN_OR, MN_OR, MN_OR, MN_OR	; 08
117
	dw  MN_OR, MN_OR, MN_PUSH, 01e0h	; 0c
118
	dw  MN_ADC, MN_ADC, MN_ADC, MN_ADC	; 10
119
	dw  MN_ADC, MN_ADC, MN_PUSH, MN_POP	; 14
120
	dw  MN_SBB, MN_SBB, MN_SBB, MN_SBB	; 18
121
	dw  MN_SBB, MN_SBB, MN_PUSH, MN_POP	; 1c
122
	dw  MN_AND, MN_AND, MN_AND, MN_AND	; 20
123
	dw  MN_AND, MN_AND, 0001h, MN_DAA	; 24
124
	dw  MN_SUB, MN_SUB, MN_SUB, MN_SUB	; 28
125
	dw  MN_SUB, MN_SUB, 0101h, MN_DAS	; 2c
126
	dw  MN_XOR, MN_XOR, MN_XOR, MN_XOR	; 30
127
	dw  MN_XOR, MN_XOR, 0201h, MN_AAA	; 34
128
	dw  MN_CMP, MN_CMP, MN_CMP, MN_CMP	; 38
129
	dw  MN_CMP, MN_CMP, 0301h, MN_AAS	; 3c
130
	dw  MN_INC, MN_INC, MN_INC, MN_INC	; 40
131
	dw  MN_INC, MN_INC, MN_INC, MN_INC	; 44
132
	dw  MN_DEC, MN_DEC, MN_DEC, MN_DEC	; 48
133
	dw  MN_DEC, MN_DEC, MN_DEC, MN_DEC	; 4c
134
	dw  MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH	; 50
135
	dw  MN_PUSH, MN_PUSH, MN_PUSH, MN_PUSH	; 54
136
	dw  MN_POP, MN_POP, MN_POP, MN_POP	; 58
137
	dw  MN_POP, MN_POP, MN_POP, MN_POP	; 5c
138
	dw  P186 + MN_PUSHA, P186 + MN_POPA, P186 + MN_BOUND, P286 + MN_ARPL	; 60
139
	dw  P386 + 0401h, P386 + 0501h, P386 + 0010h, P386 + 0020h	; 64
140
	dw  P186 + MN_PUSH, P186 + MN_IMUL, P186 + MN_PUSH, P186 + MN_IMUL	; 68
141
	dw  P186 + MN_INSB, P186 + MN_INSW, P186 + MN_OUTSB, P186 + MN_OUTSW	; 6c
142
	dw  MN_JO, MN_JNO, MN_JB, MN_JAE	; 70
143
	dw  MN_JZ, MN_JNZ, MN_JBE, MN_JA	; 74
144
	dw  MN_JS, MN_JNS, MN_JPE, MN_JPO	; 78
145
	dw  MN_JL, MN_JGE, MN_JLE, MN_JG	; 7c
146
	dw  0100h, 0100h, 0000h, 0108h	; 80
147
	dw  MN_TEST, MN_TEST, MN_XCHG, MN_XCHG	; 84
148
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; 88
149
	dw  MN_MOV, MN_LEA, MN_MOV, 02f8h	; 8c
150
	dw  MN_NOP, MN_XCHG, MN_XCHG, MN_XCHG	; 90
151
	dw  MN_XCHG, MN_XCHG, MN_XCHG, MN_XCHG	; 94
152
	dw  MN_CBW, MN_CWD, MN_CALL, MN_WAIT	; 98
153
	dw  MN_PUSHF, MN_POPF, MN_SAHF, MN_LAHF	; 9c
154
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; a0
155
	dw  MN_MOVSB, MN_MOVSW, MN_CMPSB, MN_CMPSW	; a4
156
	dw  MN_TEST, MN_TEST, MN_STOSB, MN_STOSW	; a8
157
	dw  MN_LODSB, MN_LODSW, MN_SCASB, MN_SCASW	; ac
158
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b0
159
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b4
160
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; b8
161
	dw  MN_MOV, MN_MOV, MN_MOV, MN_MOV	; bc
162
	dw  0120h, 0120h, MN_RET, MN_RET	; c0
163
	dw  MN_LES, MN_LDS, 0300h, 0300h	; c4
164
	dw  P186 + MN_ENTER, P186 + MN_LEAVE, MN_RETF, MN_RETF	; c8
165
	dw  MN_INT, MN_INT, MN_INTO, MN_IRET	; cc
166
	dw  0110h, 0110h, 0118h, 0118h	; d0
167
	dw  MN_AAM, MN_AAD, 0000h, MN_XLATB	; d4
168
	dw  0148h, 0158h, 0168h, 0178h	; d8
169
	dw  0188h, 0198h, 01a8h, 01b8h	; dc
170
	dw  MN_LOOPNZW, MN_LOOPZW, MN_LOOPW, MN_JCXZ	; e0
171
	dw  MN_IN, MN_IN, MN_OUT, MN_OUT	; e4
172
	dw  MN_CALL, MN_JMP, MN_JMP, MN_JMP	; e8
173
	dw  MN_IN, MN_IN, MN_OUT, MN_OUT	; ec
174
	dw  0008h, 0000h, 0002h, 0006h	; f0
175
	dw  MN_HLT, MN_CMC, 0128h, 0128h	; f4
176
	dw  MN_CLC, MN_STC, MN_CLI, MN_STI	; f8
177
	dw  MN_CLD, MN_STD, 02e0h, 0130h	; fc
178
	dw  MN_ADD, MN_OR, MN_ADC, MN_SBB	; 100
179
	dw  MN_AND, MN_SUB, MN_XOR, MN_CMP	; 104
180
	dw  MN_ADD, MN_OR, MN_ADC, MN_SBB	; 108
181
	dw  MN_AND, MN_SUB, MN_XOR, MN_CMP	; 10c
182
	dw  MN_ROL, MN_ROR, MN_RCL, MN_RCR	; 110
183
	dw  MN_SHL, MN_SHR, 0000h, MN_SAR	; 114
184
	dw  MN_ROL, MN_ROR, MN_RCL, MN_RCR	; 118
185
	dw  MN_SHL, MN_SHR, 0000h, MN_SAR	; 11c
186
	dw  P186 + MN_ROL, P186 + MN_ROR, P186 + MN_RCL, P186 + MN_RCR	; 120
187
	dw  P186 + MN_SHL, P186 + MN_SHR, 0000h, P186 + MN_SAR	; 124
188
	dw  MN_TEST, 0000h, MN_NOT, MN_NEG	; 128
189
	dw  MN_MUL, MN_IMUL, MN_DIV, MN_IDIV	; 12c
190
	dw  MN_INC, MN_DEC, MN_CALL, MN_CALL	; 130
191
	dw  MN_JMP, MN_JMP, MN_PUSH, 0000h	; 134
192
	dw  P286 + MN_SLDT, P286 + MN_STR, P286 + MN_LLDT, P286 + MN_LTR	; 138
193
	dw  P286 + MN_VERR, P286 + MN_VERW, 0000h, 0000h	; 13c
194
	dw  P286 + MN_SGDT, P286 + MN_SIDT, P286 + MN_LGDT, P286 + MN_LIDT	; 140
195
	dw  P286 + MN_SMSW, 0000h, P286 + MN_LMSW, P486 + MN_INVLPG	; 144
196
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 148
197
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 14c
198
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 150
199
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 154
200
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 158
201
	dw  MN_FLDENV, MN_FNLDCW, MN_FNSTENV, MN_FNSTCW	; 15c
202
	dw  MN_FLD, MN_FXCH, 0308h, 0000h	; 160
203
	dw  0310h, 01c8h, 01d0h, 01d8h	; 164
204
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 168
205
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 16c
206
	dw  P686 + MN_FCMOVB, P686 + MN_FCMOVE, P686 + MN_FCMOVBE, P686 + MN_FCMOVU	; 170
207
	dw  0000h, 0318h, 0000h, 0000h	; 174
208
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 178
209
	dw  0000h, MN_FLD, 0000h, MN_FSTP	; 17c
210
	dw  P686 + MN_FCMOVNB, P686 + MN_FCMOVNE, P686 + MN_FCMOVNBE, P686 + MN_FCMOVNU	; 180
211
	dw  0320h, P686 + MN_FUCOMI, P686 + MN_FCOMI, 0000h	; 184
212
	dw  MN_FADD, MN_FMUL, MN_FCOM, MN_FCOMP	; 188
213
	dw  MN_FSUB, MN_FSUBR, MN_FDIV, MN_FDIVR	; 18c
214
	dw  MN_FADD, MN_FMUL, 0000h, 0000h	; 190
215
	dw  MN_FSUBR, MN_FSUB, MN_FDIVR, MN_FDIV	; 194
216
	dw  MN_FLD, 0000h, MN_FST, MN_FSTP	; 198
217
	dw  MN_FRSTOR, 0000h, MN_FNSAVE, MN_FNSTSW	; 19c
218
	dw  MN_FFREE, 0000h, MN_FST, MN_FSTP	; 1a0
219
	dw  P386 + MN_FUCOM, P386 + MN_FUCOMP, 0000h, 0000h	; 1a4
220
	dw  MN_FIADD, MN_FIMUL, MN_FICOM, MN_FICOMP	; 1a8
221
	dw  MN_FISUB, MN_FISUBR, MN_FIDIV, MN_FIDIVR	; 1ac
222
	dw  MN_FADDP, MN_FMULP, 0000h, 0328h	; 1b0
223
	dw  MN_FSUBRP, MN_FSUBP, MN_FDIVRP, MN_FDIVP	; 1b4
224
	dw  MN_FILD, 0000h, MN_FIST, MN_FISTP	; 1b8
225
	dw  MN_FBLD, MN_FILD, MN_FBSTP, MN_FISTP	; 1bc
226
	dw  0000h, 0000h, 0000h, 0000h	; 1c0
227
	dw  0330h, P686 + MN_FUCOMIP, P686 + MN_FCOMIP, 0000h	; 1c4
228
	dw  MN_FLD1, MN_FLDL2T, MN_FLDL2E, MN_FLDPI	; 1c8
229
	dw  MN_FLDLG2, MN_FLDLN2, MN_FLDZ, 0000h	; 1cc
230
	dw  MN_F2XM1, MN_FYL2X, MN_FPTAN, MN_FPATAN	; 1d0
231
	dw  MN_FXTRACT, P386 + MN_FPREM1, MN_FDECSTP, MN_FINCSTP	; 1d4
232
	dw  MN_FPREM, MN_FYL2XP1, MN_FSQRT, P386 + MN_FSINCOS	; 1d8
233
	dw  MN_FRNDINT, MN_FSCALE, P386 + MN_FSIN, P386 + MN_FCOS	; 1dc
234
;--- The rest of these are squeezed.
235
	dw  0, 0138h, 0140h, P286 + MN_LAR	;00
236
	dw  P286 + MN_LSL, P286 + MN_CLTS, P486 + MN_INVD, P486 + MN_WBINVD	;04
237
	dw  P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV, P386 + MN_MOV	;08
238
	dw  P386 + MN_MOV, P386 + MN_MOV, P586 + MN_WRMSR, P586 + MN_RDTSC	;0C
239
	dw  P586 + MN_RDMSR, P686 + MN_CMOVO, P686 + MN_CMOVNO, P686 + MN_CMOVB	;10
240
	dw  P686 + MN_CMOVAE, P686 + MN_CMOVZ, P686 + MN_CMOVNZ, P686 + MN_CMOVBE	;14
241
	dw  P686 + MN_CMOVA, P686 + MN_CMOVS, P686 + MN_CMOVNS, P686 + MN_CMOVPE	;18
242
	dw  P686 + MN_CMOVPO, P686 + MN_CMOVL, P686 + MN_CMOVGE, P686 + MN_CMOVLE	;1C
243
	dw  P686 + MN_CMOVG
244
if MMXSUPP
245
	dw  P586 + MN_MOVD, P586 + MN_MOVQ, P586 + MN_EMMS, P586 + MN_MOVD, P586 + MN_MOVQ
246
else
247
	dw  0, 0, 0, 0, 0
248
endif
249
	dw  P386 + MN_JO, P386 + MN_JNO	;24
250
	dw  P386 + MN_JB, P386 + MN_JAE, P386 + MN_JZ, P386 + MN_JNZ	;28
251
	dw  P386 + MN_JBE, P386 + MN_JA, P386 + MN_JS, P386 + MN_JNS	;2C
252
	dw  P386 + MN_JPE, P386 + MN_JPO, P386 + MN_JL, P386 + MN_JGE	;30
253
	dw  P386 + MN_JLE, P386 + MN_JG, P386 + MN_SETO, P386 + MN_SETNO	;34
254
	dw  P386 + MN_SETB, P386 + MN_SETAE, P386 + MN_SETZ, P386 + MN_SETNZ	;38
255
	dw  P386 + MN_SETBE, P386 + MN_SETA, P386 + MN_SETS, P386 + MN_SETNS	;3C
256
	dw  P386 + MN_SETPE, P386 + MN_SETPO, P386 + MN_SETL, P386 + MN_SETGE	;40
257
	dw  P386 + MN_SETLE, P386 + MN_SETG, P386 + MN_PUSH, P386 + MN_POP	;44
258
	dw  P586 + MN_CPUID, P386 + MN_BT, P386 + MN_SHLD, P386 + MN_SHLD	;48
259
	dw  P386 + MN_PUSH, P386 + MN_POP, P586 + MN_RSM, P386 + MN_BTS	;4C
260
	dw  P386 + MN_SHRD, P386 + MN_SHRD, P386 + MN_IMUL, P486 + MN_CMPXCHG	;50
261
	dw  P486 + MN_CMPXCHG, P386 + MN_LSS, P386 + MN_BTR, P386 + MN_LFS	;54
262
	dw  P386 + MN_LGS, P386 + MN_MOVZX, P386 + MN_MOVZX, 02e8h	;58
263
	dw  P386 + MN_BTC, P386 + MN_BSF, P386 + MN_BSR, P386 + MN_MOVSX	;5C
264
	dw  P386 + MN_MOVSX, P486 + MN_XADD, P486 + MN_XADD, 02f0h	;60
265
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	;64
266
	dw  P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP, P486 + MN_BSWAP	;68
267
	dw  MN_INC, MN_DEC, P386 + MN_BT, P386 + MN_BTS	;6C
268
	dw  P386 + MN_BTR, P386 + MN_BTC, P586 + MN_CMPXCHG8B, MN_POP	;70
269
	dw  MN_MOV, MN_FNOP, MN_FCHS, MN_FABS	;74
270
	dw  MN_FTST, MN_FXAM, P386 + MN_FUCOMPP, MN_FNENI	;78
271
	dw  MN_FNDISI, MN_FNCLEX, MN_FNINIT, P286 + MN_FNSETPM	;7C
272
	dw  MN_FCOMPP, MN_FNSTSW
273

274
;--- table converts unsqueezed numbers to squeezed.
275
;--- 1E0-2DF are extended opcodes (0F xx).
276

277

278
sqztab label byte
279
	db   1,  2,  3,  4,  0,  0,  5,  0	;1E0
280
	db   6,  7,  0,  0,  0,  0,  0,  0	;1E8
281
	db   0,  0,  0,  0,  0,  0,  0,  0	;1F0
282
	db   0,  0,  0,  0,  0,  0,  0,  0	;1F8
283
	db   8,  9, 10, 11, 12,  0, 13,  0	;200
284
	db   0,  0,  0,  0,  0,  0,  0,  0	;208
285
	db  14, 15, 16,  0,  0,  0,  0,  0	;210
286
	db   0,  0,  0,  0,  0,  0,  0,  0	;218
287
	db  17, 18, 19, 20, 21, 22, 23, 24	;220
288
	db  25, 26, 27, 28, 29, 30, 31, 32	;228
289
	db   0,  0,  0,  0,  0,  0,  0,  0	;230
290
	db   0,  0,  0,  0,  0,  0,  0,  0	;238
291
	db   0,  0,  0,  0,  0,  0,  0,  0	;240
292
	db   0,  0,  0,  0,  0,  0, 33, 34	;248
293
	db   0,  0,  0,  0,  0,  0,  0, 35	;250
294
	db   0,  0,  0,  0,  0,  0, 36, 37	;258
295
	db  38, 39, 40, 41, 42, 43, 44, 45	;260
296
	db  46, 47, 48, 49, 50, 51, 52, 53	;268
297
	db  54, 55, 56, 57, 58, 59, 60, 61	;270
298
	db  62, 63, 64, 65, 66, 67, 68, 69	;278
299
	db  70, 71, 72, 73, 74, 75,  0,  0	;280
300
	db  76, 77, 78, 79, 80, 81,  0, 82	;288
301
	db  83, 84, 85, 86, 87, 88, 89, 90	;290
302
	db   0,  0, 91, 92, 93, 94, 95, 96	;298
303
	db  97, 98,  0,  0,  0,  0,  0, 99	;2A0
304
	db 100,101,102,103,104,105,106,107	;2A8
305
	db   0,  0,  0,  0,  0,  0,  0,  0	;2B0
306
	db   0,  0,  0,  0,  0,  0,  0,  0	;2B8
307
	db   0,  0,  0,  0,  0,  0,  0,  0	;2C0
308
	db   0,  0,  0,  0,  0,  0,  0,  0	;2C8
309
	db   0,  0,  0,  0,  0,  0,  0,  0	;2D0
310
	db   0,  0,  0,  0,  0,  0,  0,  0	;2D8
311

312
;--- 5 sparse groups
313

314
	db 108,109,  0,  0,  0,  0,  0,  0	;2E0
315
	db   0,  0,  0,  0,110,111,112,113	;2E8
316
	db   0,114,  0,  0,  0,  0,  0,  0	;2F0
317
	db 115,  0,  0,  0,  0,  0,  0,  0	;2F8
318
	db 116,  0,  0,  0,  0,  0,  0,  0	;300
319

320
;--- 6 sparse fpu groups
321

322
SFPGROUPS equ SPARSE_BASE + ( $ - sqztab )
323
SFPGROUP3 equ SFPGROUPS + 8 * 3
324
	db 117,  0,  0,  0,  0,  0,  0,  0	;308
325
	db 118,119,  0,  0,120,121,  0,  0	;310
326
	db   0,122,  0,  0,  0,  0,  0,  0	;318
327
	db 123,124,125,126,127,  0,  0,  0	;320
328
	db   0,128,  0,  0,  0,  0,  0,  0	;328
329
	db 129,  0,  0,  0,  0,  0,  0,  0	;330
330

331
;--- table of mnemonics that change in the presence of a WAIT
332
;--- instruction.
333

334
wtab1	dw 0322h,0321h,0320h,0323h,015dh,019eh,0324h,015fh
335
	dw 015eh,0330h,019fh
336
wtab2 label word
337
	dw MN_FCLEX
338
	dw MN_FDISI
339
	dw MN_FENI
340
	dw MN_FINIT
341
	dw MN_FLDCW
342
	dw MN_FSAVE
343
	dw MN_FSETPM
344
	dw MN_FSTCW
345
	dw MN_FSTENV
346
	dw MN_FSTSW
347
	dw MN_FSTSW
348
N_WTAB	equ ($ - wtab2) / 2
349

350
;--- table for operands which have a different mnemonic for
351
;--- their 32 bit versions (66h prefix).
352

353
ltabo1	dw 098h,0a7h,099h,015ch,019ch,019eh,015eh,06dh
354
	dw 0cfh,0adh,0a5h,06fh,061h,09dh,060h,09ch
355
	dw 0cbh,0cah,0afh,0abh
356
ltabo2 label word
357
	dw MN_CWDE
358
	dw MN_CMPSD
359
	dw MN_CDQ
360
	dw MN_FLDENVD
361
	dw MN_FRSTORD
362
	dw MN_FSAVED
363
	dw MN_FSTENVD
364
	dw MN_INSD
365
	dw MN_IRETD
366
	dw MN_LODSD
367
	dw MN_MOVSD
368
	dw MN_OUTSD
369
	dw MN_POPAD
370
	dw MN_POPFD
371
	dw MN_PUSHAD
372
	dw MN_PUSHFD
373
	dw MN_RETFD
374
	dw MN_RETFD
375
	dw MN_SCASD
376
	dw MN_STOSD
377
N_LTABO	equ ($ - ltabo2) / 2
378

379
;--- table for operands which have a different mnemonic for
380
;--- their 32 bit versions (67h prefix).
381

382
ltaba1	dw 0e3h,0e2h,0e1h,0e1h,0e0h,0e0h
383
ltaba2 label word
384
	dw MN_JECXZ
385
	dw MN_LOOPD
386
	dw MN_LOOPED
387
	dw MN_LOOPZD
388
	dw MN_LOOPNED
389
	dw MN_LOOPNZD
390
N_LTABA	equ ($ - ltaba2) / 2
391

392
;--- table of lockable instructions
393

394
locktab label word
395
	dw 010ah,0102h,010h,011h,0108h,0100h,00h,01h
396
	dw 010ch,0104h,020h,021h,029bh,02efh,0293h,02eeh
397
	dw 028bh,02edh,0290h,0291h,02e1h,0131h,02e0h,0130h
398
	dw 012bh,012ah,0109h,0101h,08h,09h,010bh,0103h
399
	dw 018h,019h,010dh,0105h,028h,029h,02a0h,02a1h
400
	dw 086h,087h,010eh,0106h,030h,031h
401
N_LOCK	equ ($ - locktab) / 2
402

403

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.