6 ConstantsClass
, FunctionsClass
, TypesClass
;
10 // ************************************************************************** //
11 // * GUI Resources * //
12 // ************************************************************************** //
16 FONT_DEFAULT_NAME
= 'Lucida Console';
17 FONT_DEFAULT_SIZE
= 10;
18 FONT_DEFAULT_HEIGHT
= 15;
22 GRID_INST_ERROR
= 'Error creating instruction';
26 TEXT_RESET
= 'Source has been modified. Reset?';
30 POP_ASM_CHANGE
= 'Change';
31 POP_ASM_INSERT
= 'Insert';
32 POP_ASM_REMOVE
= 'Remove';
33 POP_ASM_STEP
= 'Single Step';
34 POP_ASM_GET_ORIGIN
= 'Go to Origin';
35 POP_ASM_SET_ORIGIN
= 'New Origin here';
36 POP_ASM_RESET
= 'Reset Program';
38 { Misc. Captions, Texts, Buttons, etc. }
40 EXC_VIEW_TYPE
= 'Type';
42 EXC_VIEW_MASK
= 'Msk';
43 EXC_VIEW_TOGGLE
= 'Toggle';
48 FL_EDIT_CANCEL
= 'Cancel';
49 FL_EDIT_MODIFY
= 'Modify ';
50 FL_EDIT_FLOAT
= 'Float';
53 FL_EDIT_MODIFY_TAG
= FL_EDIT_MODIFY
+ 'associated' + FL_EDIT_TAG
;
55 ASM_INPUT_BUTTON_ASSEMBLE
= 'Assemble';
56 ASM_INPUT_BUTTON_CANCEL
= 'Cancel';
57 ASM_INPUT_CAPTION_INSERT
= 'Insert instruction at address';
58 ASM_INPUT_CAPTION_CHANGE
= 'Change instruction at address';
60 { Preprogrammed Color Themes }
62 THEME_GRID_DEFAULT
: TGridTheme
= (
63 Address
: (None
: (FG
: $404040; BG
: $FFFFFF);
64 Selected
: (FG
: $202020; BG
: $E0E0E0));
65 Assembly
: (None
: (FG
: $202020; BG
: $FFFFFF);
66 Selected
: (FG
: $000000; BG
: $E0E0E0));
67 Highlight
: (FG
: $000000; BG
: $00FFFF);
68 Step
: (FG
: $000000; BG
: $FFA080);
71 THEME_GRID_DARK
: TGridTheme
= (
72 Address
: (None
: (FG
: $C0C0C0; BG
: $000000);
73 Selected
: (FG
: $E0E0E0; BG
: $505050));
74 Assembly
: (None
: (FG
: $FFFFFF; BG
: $000000);
75 Selected
: (FG
: $FFFFFF; BG
: $505050));
76 Highlight
: (FG
: $000000; BG
: $00FFFF);
77 Step
: (FG
: $FFFFFF; BG
: $A01010);
80 THEME_VIEW_DEFAULT
: TViewTheme
= (
81 Line
: (None
: (FG
: $404040; BG
: $FFFFFF);
82 Selected
: (FG
: $202020; BG
: $E0E0E0));
86 THEME_VIEW_DARK
: TViewTheme
= (
87 Line
: (None
: (FG
: $FFFFFF; BG
: $000000);
88 Selected
: (FG
: $FFFFFF; BG
: $505050));
92 // ************************************************************************** //
93 // * API Resources * //
94 // ************************************************************************** //
100 INST_CHAR_INVALID
= 'Invalid character';
101 INST_NONE
= 'No instruction specified';
102 INST_INST_UNKNOWN
= 'Unrecognized instruction';
103 INST_INST_UNSUPPORTED
= 'Instruction not supported on physical CPU';
104 INST_OPER_INVALID
= 'Command does not support given operands';
105 INST_OPER_NOT_ENOUGH
= 'Not enough operands';
106 INST_OPER_TOO_MANY
= 'Too many operands';
107 INST_OPER_UNKNOWN
= 'Unrecognized operand';
109 STEP_BRANCH_OUT_OF_RANGE
= 'Branch address out of range';
110 STEP_NO_CALL_FUNCTION
= 'Call function not specified';
111 STEP_POSITION_OUT_OF_RANGE
= 'Position out of range';
113 { Instructions Descriptions }
133 DESC_WO
= ' without ';
137 DESC_CLA
= 'Classify ';
139 DESC_CMP
= 'Compare ';
140 DESC_CNV
= 'Convert ';
141 DESC_COM
= 'Complements ';
143 DESC_CPT
= 'Compute ';
144 DESC_DEC
= 'Decrement ';
145 DESC_DIV
= 'Divide ';
146 DESC_INC
= 'Increment ';
147 DESC_INI
= 'Initialize ';
151 DESC_MUL
= 'Multiply ';
153 DESC_REP
= 'Replace ';
156 DESC_SET
= 'Sets' + FL_EDIT_TAG
;
157 DESC_SPR
= 'Separate ';
159 DESC_SUB
= 'Subtract ';
160 DESC_XCH
= 'Exchange ';
162 DESC_TAG
: array [0..3] of String = (
168 DESC_TAG_LONGEST
= 2;
170 DESC_FLAG
: array [0..7] of String = (
180 DESC_FLAG_LONGEST
= 0;
183 DESC_STACKS
: array [0..7] of String = (
184 DESC_STACK
+ '(0)', DESC_STACK
+ '(1)',
185 DESC_STACK
+ '(2)', DESC_STACK
+ '(3)',
186 DESC_STACK
+ '(4)', DESC_STACK
+ '(5)',
187 DESC_STACK
+ '(6)', DESC_STACK
+ '(7)'
190 DESC_ST_0
= DESC_STACK
+ '(0)';
191 DESC_ST_1
= DESC_STACK
+ '(1)';
192 DESC_ST_I
= DESC_STACK
+ '(i)';
195 DESC_DWORD
= 'DWORD';
196 DESC_QWORD
= 'QWORD';
197 DESC_ADDR
= 'ADDRESS';
199 DESC_SINGLE
= 'SINGLE';
200 DESC_DOUBLE
= 'DOUBLE';
201 DESC_EXTEND
= 'EXTENDED';
202 DESC_CW
= 'CONTROL_WORD';
203 DESC_SW
= 'STATUS_WORD';
204 DESC_ENV_14
= 'ENVIRONMENT_14B';
205 DESC_ENV_28
= 'ENVIRONMENT_28B';
206 DESC_STAT_94
= 'STATE_94B';
207 DESC_STAT_108
= 'STATE_108B';
211 DESC_FPU_S
= 'the ' + DESC_FPU
+ ' stack';
212 DESC_FSW
= DESC_FPU
+ ' status word';
213 DESC_FCW
= DESC_FPU
+ ' control word';
214 DESC_FEN
= DESC_FPU
+ ' environment';
215 DESC_STA
= DESC_FPU
+ ' state';
218 DESC_SQRT
= 'square root';
219 DESC_I_SIN
= DESC_IT
+ DESC_SIN
;
220 DESC_I_COS
= DESC_IT
+ DESC_COS
;
222 DESC_STORE
= DESC_STO
+ 'result' + DESC_IN
;
223 DESC_STORE_ST_0
= DESC_STORE
+ DESC_ST_0
;
224 DESC_STORE_ST_1
= DESC_STORE
+ DESC_ST_1
;
225 DESC_STORE_ST_I
= DESC_STORE
+ DESC_ST_I
;
226 DESC_STORE_EFL
= DESC_STORE
+ DESC_EFL
;
227 DESC_STORE_FSW
= DESC_STORE
+ DESC_FSW
;
229 DESC_EXP
= 'exponent';
230 DESC_SIG
= 'significand';
232 DESC_POP_FPU
= DESC_POP
+ DESC_FPU_S
;
234 DESC_PUSH_FPU
= DESC_PUSH
+ DESC_ONT
+ DESC_FPU_S
;
235 DESC_FP_EXC
= DESC_FPU
+ ' exception flags';
236 DESC_FP_E
= DESC_FPU
+ ' exceptions';
237 DESC_CHECK_O
= 'check for ordered values';
238 DESC_PU_FP_E
= 'pending unmasked ' + DESC_FP_E
;
239 DESC_CHECK_PUE
= 'checking' + DESC_FO
+ DESC_PU_FP_E
;
240 DESC_REINIT
= '. Then re-initialize the ' + DESC_FPU
;
241 DESC_MASK
= '. Then mask all ' + DESC_FP_E
;
242 DESC_REM_D
= 'remainder obtained from dividing ';
243 DESC_CON
= DESC_TH
+ 'contents' + DESC_OF
;
245 DESC_TOP_F
= DESC_TH
+ 'TOP field';
255 DESC_U
= 'unordered';
260 DESC_EMPTY
= 'empty';
261 DESC_TRUNC
= 'truncation';
262 DESC_A_L
= DESC_IF
+ DESC_A
+ ' (CF = 0 and ZF = 0)';
263 DESC_AE_L
= DESC_IF
+ DESC_A
+ DESC_OR
+ DESC_E
+ ' (CF = 0)';
264 DESC_B_L
= DESC_IF
+ DESC_B
+ ' (CF = 1)';
265 DESC_BE_L
= DESC_IF
+ DESC_B
+ DESC_OR
+ DESC_E
+ ' (CF = 1 or ZF = 1)';
266 DESC_C_L
= DESC_IF
+ DESC_C
+ ' (CF = 1)';
267 DESC_E_L
= DESC_IF
+ DESC_E
+ ' (ZF = 1)';
268 DESC_G_L
= DESC_IF
+ DESC_G
+ ' (ZF = 0 and SF = OF)';
269 DESC_GE_L
= DESC_IF
+ DESC_G
+ DESC_OR
+ DESC_E
+ ' (SF = OF)';
270 DESC_L_L
= DESC_IF
+ DESC_L
+ ' (SF <> OF)';
271 DESC_LE_L
= DESC_IF
+ DESC_L
+ DESC_OR
+ DESC_E
+ ' (ZF = 1 or SF <> OF)';
272 DESC_NA_L
= DESC_IF
+ DESC_N
+ DESC_A
+ ' (CF = 1 or ZF = 1)';
273 DESC_NAE_L
= DESC_IF
+ DESC_N
+ DESC_A
+ DESC_OR
+ DESC_E
+ ' (CF = 1)';
274 DESC_NB_L
= DESC_IF
+ DESC_N
+ DESC_B
+ ' (CF = 0)';
275 DESC_NBE_L
= DESC_IF
+ DESC_N
+ DESC_B
+ DESC_OR
+ DESC_E
+ ' (CF = 0 and ZF = 0)';
276 DESC_NC_L
= DESC_IF
+ DESC_N
+ DESC_C
+ ' (CF = 0)';
277 DESC_NE_L
= DESC_IF
+ DESC_N
+ DESC_E
+ ' (ZF = 0)';
278 DESC_NG_L
= DESC_IF
+ DESC_N
+ DESC_G
+ ' (ZF = 1 or SF <> OF)';
279 DESC_NGE_L
= DESC_IF
+ DESC_N
+ DESC_G
+ DESC_OR
+ DESC_E
+ ' (SF <> OF)';
280 DESC_NL_L
= DESC_IF
+ DESC_N
+ DESC_L
+ ' (SF = OF)';
281 DESC_NLE_L
= DESC_IF
+ DESC_N
+ DESC_L
+ DESC_OR
+ DESC_E
+ ' (ZF = 0 and SF = OF)';
282 DESC_NO_L
= DESC_IF
+ DESC_N
+ DESC_O
+ ' (OF = 0)';
283 DESC_NP_L
= DESC_IF
+ DESC_N
+ DESC_P
+ ' (PF = 0)';
284 DESC_NS_L
= DESC_IF
+ DESC_N
+ DESC_SIGN
+ ' (SF = 0)';
285 DESC_NU_L
= DESC_IF
+ DESC_N
+ DESC_U
+ ' (PF = 0)';
286 DESC_NZ_L
= DESC_IF
+ DESC_N
+ DESC_ZERO
+ ' (ZF = 0)';
287 DESC_O_L
= DESC_IF
+ DESC_O
+ ' (OF = 1)';
288 DESC_P_L
= DESC_IF
+ DESC_P
+ ' (PF = 1)';
289 DESC_PE_L
= DESC_IF
+ DESC_P
+ DESC_EVEN
+ ' (PF = 1)';
290 DESC_PO_L
= DESC_IF
+ DESC_P
+ DESC_ODD
+ ' (PF = 0)';
291 DESC_S_L
= DESC_IF
+ DESC_SIGN
+ ' (SF = 1)';
292 DESC_U_L
= DESC_IF
+ DESC_U
+ ' (PF = 1)';
293 DESC_Z_L
= DESC_IF
+ DESC_ZERO
+ ' (ZF = 1)';
295 DESC_F2XM1
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ '(2^(ST(0)) - 1)';
296 DESC_FABS
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_IT
+ 'absolute value';
297 DESC_FADD_S
= DESC_ADD
+ DESC_SINGLE
+ DESC_TO
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
298 DESC_FADD_D
= DESC_ADD
+ DESC_DOUBLE
+ DESC_TO
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
299 DESC_FADD_T_I
= DESC_ADD
+ DESC_ST_0
+ DESC_TO
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_0
;
300 DESC_FADD_I_T
= DESC_ADD
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_I
;
301 DESC_FADDP_I_T
= DESC_ADD
+ DESC_ST_0
+ DESC_TO
+ DESC_ST_I
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
302 DESC_FADDP
= DESC_ADD
+ DESC_ST_0
+ DESC_TO
+ DESC_ST_1
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
303 DESC_FBLD_0
= DESC_CNV
+ DESC_BCD
+ DESC_TO
+ DESC_EXTEND
+ DESC_AN
+ DESC_PUSH_FPU
;
304 DESC_FBSTP_0
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_BCD
+ DESC_AN
+ DESC_POP_FPU
;
305 DESC_FCHS
= DESC_COM
+ DESC_SIGN
+ DESC_OF
+ DESC_ST_0
;
306 DESC_FCLEX
= DESC_CLR
+ DESC_FP_EXC
+ DESC_AF
+ DESC_CHECK_PUE
;
307 DESC_FCMOVB_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_B_L
;
308 DESC_FCMOVBE_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_BE_L
;
309 DESC_FCMOVE_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_E_L
;
310 DESC_FCMOVNB_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_NB_L
;
311 DESC_FCMOVNBE_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_NBE_L
;
312 DESC_FCMOVNE_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_NE_L
;
313 DESC_FCMOVNU_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_NU_L
;
314 DESC_FCMOVU_T_I
= DESC_MOV
+ DESC_ST_I
+ DESC_TO
+ DESC_ST_0
+ DESC_U_L
;
315 DESC_FCOM
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_AN
+ DESC_STORE_FSW
;
316 DESC_FCOM_S
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_SINGLE
+ DESC_AN
+ DESC_STORE_FSW
;
317 DESC_FCOM_D
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_DOUBLE
+ DESC_AN
+ DESC_STORE_FSW
;
318 DESC_FCOM_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_FSW
;
319 DESC_FCOMI_T_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_EFL
;
320 DESC_FCOMIP_T_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_STORE_EFL
+ DESC_COA
+ DESC_POP_FPU
;
321 DESC_FCOMP
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
322 DESC_FCOMP_S
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_SINGLE
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
323 DESC_FCOMP_D
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_DOUBLE
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
324 DESC_FCOMP_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
325 DESC_FCOMPP
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
+ DESC_2X
;
326 DESC_FCOS
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_I_COS
;
327 DESC_FDECSTP
= DESC_DEC
+ DESC_TOP_F
+ DESC_IN
+ DESC_FSW
;
328 DESC_FDIV_S
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_SINGLE
+ DESC_AN
+ DESC_STORE_ST_0
;
329 DESC_FDIV_D
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_DOUBLE
+ DESC_AN
+ DESC_STORE_ST_0
;
330 DESC_FDIV_T_I
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_0
;
331 DESC_FDIV_I_T
= DESC_DIV
+ DESC_ST_I
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_I
;
332 DESC_FDIVP
= DESC_DIV
+ DESC_ST_1
+ DESC_BY
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
333 DESC_FDIVP_I_T
= DESC_DIV
+ DESC_ST_I
+ DESC_BY
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
334 DESC_FDIVR_S
= DESC_DIV
+ DESC_SINGLE
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
335 DESC_FDIVR_D
= DESC_DIV
+ DESC_DOUBLE
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
336 DESC_FDIVR_T_I
= DESC_DIV
+ DESC_ST_I
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
337 DESC_FDIVR_I_T
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_I
;
338 DESC_FDIVRP
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_1
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
339 DESC_FDIVRP_I_T
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_I
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
340 DESC_FFREE_I
= DESC_SET
+ DESC_FO
+ DESC_ST_I
+ DESC_TO
+ DESC_EMPTY
;
341 DESC_FIADD_4
= DESC_ADD
+ DESC_DWORD
+ DESC_TO
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
342 DESC_FIADD_2
= DESC_ADD
+ DESC_WORD
+ DESC_TO
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
343 DESC_FICOM_2
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_WORD
+ DESC_AN
+ DESC_STORE_FSW
;
344 DESC_FICOM_4
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_DWORD
+ DESC_AN
+ DESC_STORE_FSW
;
345 DESC_FICOMP_2
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_WORD
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
346 DESC_FICOMP_4
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_DWORD
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
347 DESC_FIDIV_2
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_WORD
+ DESC_AN
+ DESC_STORE_ST_0
;
348 DESC_FIDIV_4
= DESC_DIV
+ DESC_ST_0
+ DESC_BY
+ DESC_DWORD
+ DESC_AN
+ DESC_STORE_ST_0
;
349 DESC_FIDIVR_2
= DESC_DIV
+ DESC_WORD
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
350 DESC_FIDIVR_4
= DESC_DIV
+ DESC_DWORD
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
351 DESC_FILD_2
= DESC_PSH
+ DESC_WORD
+ DESC_ONT
+ DESC_FPU_S
;
352 DESC_FILD_4
= DESC_PSH
+ DESC_DWORD
+ DESC_ONT
+ DESC_FPU_S
;
353 DESC_FILD_8
= DESC_PSH
+ DESC_QWORD
+ DESC_ONT
+ DESC_FPU_S
;
354 DESC_FIMUL_2
= DESC_MUL
+ DESC_ST_0
+ DESC_BY
+ DESC_WORD
+ DESC_AN
+ DESC_STORE_ST_0
;
355 DESC_FIMUL_4
= DESC_MUL
+ DESC_ST_0
+ DESC_BY
+ DESC_DWORD
+ DESC_AN
+ DESC_STORE_ST_0
;
356 DESC_FINCSTP
= DESC_INC
+ DESC_TOP_F
+ DESC_IN
+ DESC_FSW
;
357 DESC_FINIT
= DESC_INI
+ DESC_FPU
+ DESC_AF
+ DESC_CHECK_PUE
;
358 DESC_FIST_2
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_WORD
;
359 DESC_FIST_4
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_DWORD
;
360 DESC_FISTP_2
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_WORD
+ DESC_AN
+ DESC_POP_FPU
;
361 DESC_FISTP_4
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_DWORD
+ DESC_AN
+ DESC_POP_FPU
;
362 DESC_FISTP_8
= DESC_STR
+ DESC_ST_0
+ DESC_IN
+ DESC_QWORD
+ DESC_AN
+ DESC_POP_FPU
;
363 DESC_FISTTP_2
= DESC_FISTP_2
+ DESC_WI
+ DESC_TRUNC
;
364 DESC_FISTTP_4
= DESC_FISTP_4
+ DESC_WI
+ DESC_TRUNC
;
365 DESC_FISTTP_8
= DESC_FISTP_8
+ DESC_WI
+ DESC_TRUNC
;
366 DESC_FISUB_2
= DESC_SUB
+ DESC_WORD
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
367 DESC_FISUB_4
= DESC_SUB
+ DESC_DWORD
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
368 DESC_FISUBR_2
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_WORD
+ DESC_AN
+ DESC_STORE_ST_0
;
369 DESC_FISUBR_4
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_DWORD
+ DESC_AN
+ DESC_STORE_ST_0
;
370 DESC_FLD_S
= DESC_PSH
+ DESC_SINGLE
+ DESC_ONT
+ DESC_FPU_S
;
371 DESC_FLD_D
= DESC_PSH
+ DESC_DOUBLE
+ DESC_ONT
+ DESC_FPU_S
;
372 DESC_FLD_E
= DESC_PSH
+ DESC_EXTEND
+ DESC_ONT
+ DESC_FPU_S
;
373 DESC_FLD_I
= DESC_PSH
+ DESC_ST_I
+ DESC_ONT
+ DESC_FPU_S
;
374 DESC_FLD1
= DESC_PSH
+ '+1.0' + DESC_ONT
+ DESC_FPU_S
;
375 DESC_FLDCW_C
= DESC_LOA
+ DESC_FCW
+ DESC_FR
+ DESC_CW
;
376 DESC_FLDENV_14
= DESC_LOA
+ DESC_FEN
+ DESC_FR
+ DESC_ENV_14
;
377 DESC_FLDENV_28
= DESC_LOA
+ DESC_FEN
+ DESC_FR
+ DESC_ENV_28
;
378 DESC_FLDL2E
= DESC_PSH
+ 'log_2(e)' + DESC_ONT
+ DESC_FPU_S
;
379 DESC_FLDL2T
= DESC_PSH
+ 'log_2(10)' + DESC_ONT
+ DESC_FPU_S
;
380 DESC_FLDLG2
= DESC_PSH
+ 'log_10(2)' + DESC_ONT
+ DESC_FPU_S
;
381 DESC_FLDLN2
= DESC_PSH
+ 'log_e(2)' + DESC_ONT
+ DESC_FPU_S
;
382 DESC_FLDPI
= DESC_PSH
+ 'Pi (3.141...)' + DESC_ONT
+ DESC_FPU_S
;
383 DESC_FLDZ
= DESC_PSH
+ '+0.0' + DESC_ONT
+ DESC_FPU_S
;
384 DESC_FMUL_S
= DESC_MUL
+ DESC_ST_0
+ DESC_BY
+ DESC_SINGLE
+ DESC_AN
+ DESC_STORE_ST_0
;
385 DESC_FMUL_D
= DESC_MUL
+ DESC_ST_0
+ DESC_BY
+ DESC_DOUBLE
+ DESC_AN
+ DESC_STORE_ST_0
;
386 DESC_FMUL_T_I
= DESC_MUL
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_0
;
387 DESC_FMUL_I_T
= DESC_MUL
+ DESC_ST_I
+ DESC_BY
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_I
;
388 DESC_FMULP
= DESC_MUL
+ DESC_ST_1
+ DESC_BY
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
389 DESC_FMULP_I_T
= DESC_MUL
+ DESC_ST_I
+ DESC_BY
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
390 DESC_FNCLEX
= DESC_CLR
+ DESC_FP_EXC
+ DESC_WO
+ DESC_CHECK_PUE
;
391 DESC_FNINIT
= DESC_INI
+ DESC_FPU
+ DESC_WO
+ DESC_CHECK_PUE
;
392 DESC_FNOP
= 'No operation is performed';
393 DESC_FNSAVE_94
= DESC_STR
+ DESC_STA
+ DESC_TO
+ DESC_STAT_94
+ DESC_WO
+ DESC_CHECK_PUE
+ DESC_REINIT
;
394 DESC_FNSAVE_108
= DESC_STR
+ DESC_STA
+ DESC_TO
+ DESC_STAT_108
+ DESC_WO
+ DESC_CHECK_PUE
+ DESC_REINIT
;
395 DESC_FNSTCW_C
= DESC_STR
+ DESC_FCW
+ DESC_TO
+ DESC_CW
+ DESC_WO
+ DESC_CHECK_PUE
;
396 DESC_FNSTENV_14
= DESC_STR
+ DESC_FEN
+ DESC_TO
+ DESC_ENV_14
+ DESC_WO
+ DESC_CHECK_PUE
+ DESC_MASK
;
397 DESC_FNSTENV_28
= DESC_STR
+ DESC_FEN
+ DESC_TO
+ DESC_ENV_28
+ DESC_WO
+ DESC_CHECK_PUE
+ DESC_MASK
;
398 DESC_FNSTSW_W
= DESC_STR
+ DESC_FSW
+ DESC_TO
+ DESC_SW
+ DESC_WO
+ DESC_CHECK_PUE
;
399 DESC_FNSTSW_AX
= DESC_STR
+ DESC_FSW
+ DESC_TO
+ DESC_AX
+ DESC_WO
+ DESC_CHECK_PUE
;
400 DESC_FPATAN
= DESC_REP
+ DESC_ST_1
+ DESC_WI
+ 'arctan(' + DESC_ST_1
+ '/' + DESC_ST_0
+ ')' + DESC_AN
+ DESC_POP_FPU
;
401 DESC_FPREM
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_TH
+ DESC_REM_D
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_1
;
402 DESC_FPREM1
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_TH
+ 'IEEE ' + DESC_REM_D
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_1
;
403 DESC_FPTAN
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ 'its tangent' + DESC_AN
+ DESC_PUSH
+ ' 1' + DESC_ONT
+ DESC_FPU_S
;
404 DESC_FRNDINT
= DESC_RND
+ DESC_ST_0
+ DESC_TO
+ 'an integer';
405 DESC_FRSTOR_94
= DESC_LOA
+ DESC_STA
+ DESC_FR
+ DESC_STAT_94
;
406 DESC_FRSTOR_108
= DESC_LOA
+ DESC_STA
+ DESC_FR
+ DESC_STAT_108
;
407 DESC_FSAVE_94
= DESC_STR
+ DESC_STA
+ DESC_TO
+ DESC_STAT_94
+ DESC_AF
+ DESC_CHECK_PUE
+ DESC_REINIT
;
408 DESC_FSAVE_108
= DESC_STR
+ DESC_STA
+ DESC_TO
+ DESC_STAT_108
+ DESC_AF
+ DESC_CHECK_PUE
+ DESC_REINIT
;
409 DESC_FSCALE
= DESC_SCA
+ DESC_ST_0
+ DESC_BY
+ DESC_ST_1
;
410 DESC_FSIN
= DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_I_SIN
;
411 DESC_FSINCOS
= DESC_CPT
+ DESC_TH
+ DESC_SIN
+ DESC_AN
+ DESC_COS
+ DESC_OF
+ DESC_ST_0
+ DESC_DO
+ DESC_REP
+ DESC_ST_0
+ DESC_WI
+ DESC_TH
+ DESC_SIN
+ DESC_COA
+ DESC_PUSH
+ ' ' + DESC_TH
+ DESC_COS
+ DESC_ONT
+ DESC_FPU_S
;
412 DESC_FSQRT
= DESC_CPT
+ DESC_SQRT
+ DESC_OF
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
413 DESC_FST_S
= DESC_STR
+ DESC_ST_0
+ DESC_TO
+ DESC_SINGLE
;
414 DESC_FST_D
= DESC_STR
+ DESC_ST_0
+ DESC_TO
+ DESC_DOUBLE
;
415 DESC_FST_I
= DESC_COP
+ DESC_ST_0
+ DESC_TO
+ DESC_ST_I
;
416 DESC_FSTCW_C
= DESC_STR
+ DESC_FCW
+ DESC_TO
+ DESC_CW
+ DESC_AF
+ DESC_CHECK_PUE
;
417 DESC_FSTENV_14
= DESC_STR
+ DESC_FEN
+ DESC_TO
+ DESC_ENV_14
+ DESC_AF
+ DESC_CHECK_PUE
+ DESC_MASK
;
418 DESC_FSTENV_28
= DESC_STR
+ DESC_FEN
+ DESC_TO
+ DESC_ENV_28
+ DESC_AF
+ DESC_CHECK_PUE
+ DESC_MASK
;
419 DESC_FSTP_S
= DESC_STR
+ DESC_ST_0
+ DESC_TO
+ DESC_SINGLE
+ DESC_AN
+ DESC_POP_FPU
;
420 DESC_FSTP_D
= DESC_STR
+ DESC_ST_0
+ DESC_TO
+ DESC_DOUBLE
+ DESC_AN
+ DESC_POP_FPU
;
421 DESC_FSTP_E
= DESC_STR
+ DESC_ST_0
+ DESC_TO
+ DESC_EXTEND
+ DESC_AN
+ DESC_POP_FPU
;
422 DESC_FSTP_I
= DESC_COP
+ DESC_ST_0
+ DESC_TO
+ DESC_ST_I
+ DESC_AN
+ DESC_POP_FPU
;
423 DESC_FSTSW_W
= DESC_STR
+ DESC_FSW
+ DESC_TO
+ DESC_SW
+ DESC_AF
+ DESC_CHECK_PUE
;
424 DESC_FSTSW_AX
= DESC_STR
+ DESC_FSW
+ DESC_TO
+ DESC_AX
+ DESC_AF
+ DESC_CHECK_PUE
;
425 DESC_FSUB_S
= DESC_SUB
+ DESC_SINGLE
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
426 DESC_FSUB_D
= DESC_SUB
+ DESC_DOUBLE
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
427 DESC_FSUB_T_I
= DESC_SUB
+ DESC_ST_I
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_0
;
428 DESC_FSUB_I_T
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_I
;
429 DESC_FSUBP
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_ST_1
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
430 DESC_FSUBP_I_T
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_ST_I
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
431 DESC_FSUBR_S
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_SINGLE
+ DESC_AN
+ DESC_STORE_ST_0
;
432 DESC_FSUBR_D
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_DOUBLE
+ DESC_AN
+ DESC_STORE_ST_0
;
433 DESC_FSUBR_T_I
= DESC_SUB
+ DESC_ST_0
+ DESC_FR
+ DESC_ST_I
+ DESC_AN
+ DESC_STORE_ST_0
;
434 DESC_FSUBR_I_T
= DESC_SUB
+ DESC_ST_I
+ DESC_FR
+ DESC_ST_0
+ DESC_AN
+ DESC_STORE_ST_I
;
435 DESC_FSUBRP
= DESC_SUB
+ DESC_ST_1
+ DESC_FR
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_1
+ DESC_COA
+ DESC_POP_FPU
;
436 DESC_FSUBRP_I_T
= DESC_SUB
+ DESC_ST_I
+ DESC_FR
+ DESC_ST_0
+ DESC_CO
+ DESC_STORE_ST_I
+ DESC_COA
+ DESC_POP_FPU
;
437 DESC_FTST
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ '0.0' + DESC_AN
+ DESC_STORE_FSW
;
438 DESC_FUCOM
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_CO
+ DESC_CHECK_O
+ DESC_COA
+ DESC_STORE_FSW
;
439 DESC_FUCOM_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_CHECK_O
+ DESC_COA
+ DESC_STORE_FSW
;
440 DESC_FUCOMI_T_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_CHECK_O
+ DESC_COA
+ DESC_STORE_EFL
;
441 DESC_FUCOMIP_T_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_CHECK_O
+ DESC_CO
+ DESC_STORE_EFL
+ DESC_COA
+ DESC_POP_FPU
;
442 DESC_FUCOMP
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_CO
+ DESC_CHECK_O
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
443 DESC_FUCOMP_I
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_I
+ DESC_CO
+ DESC_CHECK_O
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
;
444 DESC_FUCOMPP
= DESC_CMP
+ DESC_ST_0
+ DESC_WI
+ DESC_ST_1
+ DESC_CO
+ DESC_CHECK_O
+ DESC_CO
+ DESC_STORE_FSW
+ DESC_COA
+ DESC_POP_FPU
+ DESC_2X
;
445 DESC_FWAIT
= DESC_CHK
+ DESC_PU_FP_E
;
446 DESC_FXAM
= DESC_CLA
+ DESC_VAL
+ DESC_OR
+ 'number' + DESC_IN
+ DESC_ST_0
;
447 DESC_FXCH
= DESC_XCH
+ DESC_CON
+ DESC_ST_0
+ DESC_AN
+ DESC_ST_1
;
448 DESC_FXCH_I
= DESC_XCH
+ DESC_CON
+ DESC_ST_0
+ DESC_AN
+ DESC_ST_I
;
449 DESC_FXTRACT
= DESC_SPR
+ DESC_VAL
+ DESC_IN
+ DESC_ST_0
+ DESC_INT
+ DESC_EXP
+ DESC_AN
+ DESC_SIG
+ DESC_CO
+ DESC_STO
+ DESC_EXP
+ DESC_IN
+ DESC_ST_0
+ DESC_COA
+ DESC_PUSH
+ ' ' + DESC_TH
+ DESC_SIG
+ DESC_ONT
+ DESC_FPU_S
;
450 DESC_FYL2X
= DESC_REP
+ DESC_ST_1
+ DESC_WI
+ '(' + DESC_ST_1
+ ' * ' + 'log_2(' + DESC_ST_0
+ '))' + DESC_AN
+ DESC_POP_FPU
;
451 DESC_FYL2XP1
= DESC_REP
+ DESC_ST_1
+ DESC_WI
+ '(' + DESC_ST_1
+ ' * ' + 'log_2(' + DESC_ST_0
+ ' + 1.0))' + DESC_AN
+ DESC_POP_FPU
;
452 DESC_JMP
= DESC_JM
+ DESC_TO
+ DESC_ADDR
;
453 DESC_JA
= DESC_JMP
+ DESC_A_L
;
454 DESC_JAE
= DESC_JMP
+ DESC_AE_L
;
455 DESC_JB
= DESC_JMP
+ DESC_B_L
;
456 DESC_JBE
= DESC_JMP
+ DESC_BE_L
;
457 DESC_JC
= DESC_JMP
+ DESC_C_L
;
458 DESC_JE
= DESC_JMP
+ DESC_E_L
;
459 DESC_JG
= DESC_JMP
+ DESC_C_L
;
460 DESC_JGE
= DESC_JMP
+ DESC_GE_L
;
461 DESC_JL
= DESC_JMP
+ DESC_L_L
;
462 DESC_JLE
= DESC_JMP
+ DESC_LE_L
;
463 DESC_JNA
= DESC_JMP
+ DESC_NA_L
;
464 DESC_JNAE
= DESC_JMP
+ DESC_NAE_L
;
465 DESC_JNB
= DESC_JMP
+ DESC_NB_L
;
466 DESC_JNBE
= DESC_JMP
+ DESC_NBE_L
;
467 DESC_JNC
= DESC_JMP
+ DESC_NC_L
;
468 DESC_JNE
= DESC_JMP
+ DESC_NE_L
;
469 DESC_JNG
= DESC_JMP
+ DESC_NG_L
;
470 DESC_JNGE
= DESC_JMP
+ DESC_NGE_L
;
471 DESC_JNL
= DESC_JMP
+ DESC_NL_L
;
472 DESC_JNLE
= DESC_JMP
+ DESC_NLE_L
;
473 DESC_JNO
= DESC_JMP
+ DESC_NO_L
;
474 DESC_JNP
= DESC_JMP
+ DESC_NP_L
;
475 DESC_JNS
= DESC_JMP
+ DESC_NS_L
;
476 DESC_JNZ
= DESC_JMP
+ DESC_NZ_L
;
477 DESC_JO
= DESC_JMP
+ DESC_O_L
;
478 DESC_JP
= DESC_JMP
+ DESC_P_L
;
479 DESC_JPE
= DESC_JMP
+ DESC_PE_L
;
480 DESC_JPO
= DESC_JMP
+ DESC_PO_L
;
481 DESC_JS
= DESC_JMP
+ DESC_S_L
;
482 DESC_JZ
= DESC_JMP
+ DESC_Z_L
;
484 { Operands Description }
486 DESC_OPER_ERROR
= '<Error>';
487 DESC_OPER_NONE
= '<No Operands>';
488 DESC_OPER_ST_0
= '<' + DESC_ST_0
+ '>';
489 DESC_OPER_ST_I
= '<' + DESC_ST_I
+ '>';
490 DESC_OPER_AX
= '<' + DESC_AX
+ '>';
491 DESC_OPER_M16_INT
= '<' + DESC_WORD
+ '>';
492 DESC_OPER_M32_INT
= '<' + DESC_DWORD
+ '>';
493 DESC_OPER_M64_INT
= '<' + DESC_QWORD
+ '>';
494 DESC_OPER_ADDR
= '<' + DESC_ADDR
+ '>';
495 DESC_OPER_M80_BCD
= '<' + DESC_BCD
+ '>';
496 DESC_OPER_M32_FP
= '<' + DESC_SINGLE
+ '>';
497 DESC_OPER_M64_FP
= '<' + DESC_DOUBLE
+ '>';
498 DESC_OPER_M80_FP
= '<' + DESC_EXTEND
+ '>';
499 DESC_OPER_M2BYTE_CW
= '<' + DESC_CW
+ '>';
500 DESC_OPER_M2BYTE_SW
= '<' + DESC_SW
+ '>';
501 DESC_OPER_M14BYTE_ENV
= '<' + DESC_ENV_14
+ '>';
502 DESC_OPER_M28BYTE_ENV
= '<' + DESC_ENV_28
+ '>';
503 DESC_OPER_M94BYTE_STAT
= '<' + DESC_STAT_94
+ '>';
504 DESC_OPER_M108BYTE_STAT
= '<' + DESC_STAT_108
+ '>';
506 { Operands Default Values }
508 DEFV_M16_INT
= #
$00#
$00;
509 DEFV_M32_INT
= #
$00#
$00#
$00#
$00;
510 DEFV_M64_INT
= #
$00#
$00#
$00#
$00#
$00#
$00#
$00#
$00;
511 DEFV_M32_FP
= #
$00#
$00#
$00#
$00;
513 { Jump Instructions Code Constants }
514 JMP_RESULT_1
= #
$C7#
$44#
$24#
$04#
$01#
$00#
$00#
$00;
515 JCC_SHARED
= #
$02#
$EB#
$08 + JMP_RESULT_1
;
519 { Instructions Definition }
521 sInstructions
: array [0..221] of TInstructionRecord
= (
522 (Name
: 'F2XM1' + FP_X
; Code
: #
$D9#
$F0; Description
: DESC_F2XM1
; Branch
: BRANCH_NORMAL
),
523 (Name
: 'FABS' + FP_X
; Code
: #
$D9#
$E1; Description
: DESC_FABS
; Branch
: BRANCH_NORMAL
),
524 (Name
: 'FADD' + FP_S
; Code
: #
$D8#
$00; Description
: DESC_FADD_S
; Branch
: BRANCH_NORMAL
),
525 (Name
: 'FADD' + FP_D
; Code
: #
$DC#
$00; Description
: DESC_FADD_D
; Branch
: BRANCH_NORMAL
),
526 (Name
: 'FADD' + FP_T
+ FP_T
; Code
: #
$D8#
$C0; Description
: DESC_FADD_T_I
; Branch
: BRANCH_NORMAL
),
527 (Name
: 'FADD' + FP_T
+ FP_I
; Code
: #
$D8#
$C0; Description
: DESC_FADD_T_I
; Branch
: BRANCH_NORMAL
),
528 (Name
: 'FADD' + FP_I
+ FP_T
; Code
: #
$DC#
$C0; Description
: DESC_FADD_I_T
; Branch
: BRANCH_NORMAL
),
529 (Name
: 'FADDP' + FP_X
; Code
: #
$DE#
$C1; Description
: DESC_FADDP
; Branch
: BRANCH_NORMAL
),
530 (Name
: 'FADDP' + FP_T
+ FP_T
; Code
: #
$DE#
$C0; Description
: DESC_FADDP_I_T
; Branch
: BRANCH_NORMAL
),
531 (Name
: 'FADDP' + FP_I
+ FP_T
; Code
: #
$DE#
$C0; Description
: DESC_FADDP_I_T
; Branch
: BRANCH_NORMAL
),
532 (Name
: 'FBLD' + FP_0
; Code
: #
$DF#
$20; Description
: DESC_FBLD_0
; Branch
: BRANCH_NORMAL
),
533 (Name
: 'FBSTP' + FP_0
; Code
: #
$DF#
$30; Description
: DESC_FBSTP_0
; Branch
: BRANCH_NORMAL
),
534 (Name
: 'FCHS' + FP_X
; Code
: #
$D9#
$E0; Description
: DESC_FCHS
; Branch
: BRANCH_NORMAL
),
535 (Name
: 'FCLEX' + FP_X
; Code
: #
$9B#
$DB#
$E2; Description
: DESC_FCLEX
; Branch
: BRANCH_NORMAL
),
536 (Name
: 'FCMOVB' + FP_T
+ FP_T
; Code
: #
$DA#
$C0; Description
: DESC_FCMOVB_T_I
; Branch
: BRANCH_NORMAL
),
537 (Name
: 'FCMOVB' + FP_T
+ FP_I
; Code
: #
$DA#
$C0; Description
: DESC_FCMOVB_T_I
; Branch
: BRANCH_NORMAL
),
538 (Name
: 'FCMOVBE' + FP_T
+ FP_T
; Code
: #
$DA#
$D0; Description
: DESC_FCMOVBE_T_I
; Branch
: BRANCH_NORMAL
),
539 (Name
: 'FCMOVBE' + FP_T
+ FP_I
; Code
: #
$DA#
$D0; Description
: DESC_FCMOVBE_T_I
; Branch
: BRANCH_NORMAL
),
540 (Name
: 'FCMOVE' + FP_T
+ FP_T
; Code
: #
$DA#
$C8; Description
: DESC_FCMOVE_T_I
; Branch
: BRANCH_NORMAL
),
541 (Name
: 'FCMOVE' + FP_T
+ FP_I
; Code
: #
$DA#
$C8; Description
: DESC_FCMOVE_T_I
; Branch
: BRANCH_NORMAL
),
542 (Name
: 'FCMOVNB' + FP_T
+ FP_T
; Code
: #
$DB#
$C0; Description
: DESC_FCMOVNB_T_I
; Branch
: BRANCH_NORMAL
),
543 (Name
: 'FCMOVNB' + FP_T
+ FP_I
; Code
: #
$DB#
$C0; Description
: DESC_FCMOVNB_T_I
; Branch
: BRANCH_NORMAL
),
544 (Name
: 'FCMOVNBE' + FP_T
+ FP_T
; Code
: #
$DB#
$D0; Description
: DESC_FCMOVNBE_T_I
; Branch
: BRANCH_NORMAL
),
545 (Name
: 'FCMOVNBE' + FP_T
+ FP_I
; Code
: #
$DB#
$D0; Description
: DESC_FCMOVNBE_T_I
; Branch
: BRANCH_NORMAL
),
546 (Name
: 'FCMOVNE' + FP_T
+ FP_T
; Code
: #
$DB#
$C8; Description
: DESC_FCMOVNE_T_I
; Branch
: BRANCH_NORMAL
),
547 (Name
: 'FCMOVNE' + FP_T
+ FP_I
; Code
: #
$DB#
$C8; Description
: DESC_FCMOVNE_T_I
; Branch
: BRANCH_NORMAL
),
548 (Name
: 'FCMOVNU' + FP_T
+ FP_T
; Code
: #
$DB#
$D8; Description
: DESC_FCMOVNU_T_I
; Branch
: BRANCH_NORMAL
),
549 (Name
: 'FCMOVNU' + FP_T
+ FP_I
; Code
: #
$DB#
$D8; Description
: DESC_FCMOVNU_T_I
; Branch
: BRANCH_NORMAL
),
550 (Name
: 'FCMOVU' + FP_T
+ FP_T
; Code
: #
$DA#
$D8; Description
: DESC_FCMOVU_T_I
; Branch
: BRANCH_NORMAL
),
551 (Name
: 'FCMOVU' + FP_T
+ FP_I
; Code
: #
$DA#
$D8; Description
: DESC_FCMOVU_T_I
; Branch
: BRANCH_NORMAL
),
552 (Name
: 'FCOM' + FP_X
; Code
: #
$D8#
$D1; Description
: DESC_FCOM
; Branch
: BRANCH_NORMAL
),
553 (Name
: 'FCOM' + FP_S
; Code
: #
$D8#
$10; Description
: DESC_FCOM_S
; Branch
: BRANCH_NORMAL
),
554 (Name
: 'FCOM' + FP_D
; Code
: #
$DC#
$10; Description
: DESC_FCOM_D
; Branch
: BRANCH_NORMAL
),
555 (Name
: 'FCOM' + FP_T
; Code
: #
$D8#
$D0; Description
: DESC_FCOM_I
; Branch
: BRANCH_NORMAL
),
556 (Name
: 'FCOM' + FP_I
; Code
: #
$D8#
$D0; Description
: DESC_FCOM_I
; Branch
: BRANCH_NORMAL
),
557 (Name
: 'FCOMI' + FP_T
+ FP_T
; Code
: #
$DB#
$F0; Description
: DESC_FCOMI_T_I
; Branch
: BRANCH_NORMAL
),
558 (Name
: 'FCOMI' + FP_T
+ FP_I
; Code
: #
$DB#
$F0; Description
: DESC_FCOMI_T_I
; Branch
: BRANCH_NORMAL
),
559 (Name
: 'FCOMIP' + FP_T
+ FP_T
; Code
: #
$DF#
$F0; Description
: DESC_FCOMIP_T_I
; Branch
: BRANCH_NORMAL
),
560 (Name
: 'FCOMIP' + FP_T
+ FP_I
; Code
: #
$DF#
$F0; Description
: DESC_FCOMIP_T_I
; Branch
: BRANCH_NORMAL
),
561 (Name
: 'FCOMP' + FP_X
; Code
: #
$D8#
$D9; Description
: DESC_FCOMP
; Branch
: BRANCH_NORMAL
),
562 (Name
: 'FCOMP' + FP_S
; Code
: #
$D8#
$18; Description
: DESC_FCOMP_S
; Branch
: BRANCH_NORMAL
),
563 (Name
: 'FCOMP' + FP_D
; Code
: #
$DC#
$18; Description
: DESC_FCOMP_D
; Branch
: BRANCH_NORMAL
),
564 (Name
: 'FCOMP' + FP_T
; Code
: #
$D8#
$D8; Description
: DESC_FCOMP_I
; Branch
: BRANCH_NORMAL
),
565 (Name
: 'FCOMP' + FP_I
; Code
: #
$D8#
$D8; Description
: DESC_FCOMP_I
; Branch
: BRANCH_NORMAL
),
566 (Name
: 'FCOMPP' + FP_X
; Code
: #
$DE#
$D9; Description
: DESC_FCOMPP
; Branch
: BRANCH_NORMAL
),
567 (Name
: 'FCOS' + FP_X
; Code
: #
$D9#
$FF; Description
: DESC_FCOS
; Branch
: BRANCH_NORMAL
),
568 (Name
: 'FDECSTP' + FP_X
; Code
: #
$D9#
$F6; Description
: DESC_FDECSTP
; Branch
: BRANCH_NORMAL
),
569 (Name
: 'FDIV' + FP_S
; Code
: #
$D8#
$30; Description
: DESC_FDIV_S
; Branch
: BRANCH_NORMAL
),
570 (Name
: 'FDIV' + FP_D
; Code
: #
$DC#
$30; Description
: DESC_FDIV_D
; Branch
: BRANCH_NORMAL
),
571 (Name
: 'FDIV' + FP_T
+ FP_T
; Code
: #
$D8#
$F0; Description
: DESC_FDIV_T_I
; Branch
: BRANCH_NORMAL
),
572 (Name
: 'FDIV' + FP_T
+ FP_I
; Code
: #
$D8#
$F0; Description
: DESC_FDIV_T_I
; Branch
: BRANCH_NORMAL
),
573 (Name
: 'FDIV' + FP_I
+ FP_T
; Code
: #
$DC#
$F8; Description
: DESC_FDIV_I_T
; Branch
: BRANCH_NORMAL
),
574 (Name
: 'FDIVP' + FP_T
+ FP_T
; Code
: #
$DE#
$F8; Description
: DESC_FDIVP_I_T
; Branch
: BRANCH_NORMAL
),
575 (Name
: 'FDIVP' + FP_I
+ FP_T
; Code
: #
$DE#
$F8; Description
: DESC_FDIVP_I_T
; Branch
: BRANCH_NORMAL
),
576 (Name
: 'FDIVP' + FP_X
; Code
: #
$DE#
$F9; Description
: DESC_FDIVP
; Branch
: BRANCH_NORMAL
),
577 (Name
: 'FDIVR' + FP_S
; Code
: #
$D8#
$30; Description
: DESC_FDIVR_S
; Branch
: BRANCH_NORMAL
),
578 (Name
: 'FDIVR' + FP_D
; Code
: #
$DC#
$30; Description
: DESC_FDIVR_D
; Branch
: BRANCH_NORMAL
),
579 (Name
: 'FDIVR' + FP_T
+ FP_T
; Code
: #
$D8#
$F0; Description
: DESC_FDIVR_T_I
; Branch
: BRANCH_NORMAL
),
580 (Name
: 'FDIVR' + FP_T
+ FP_I
; Code
: #
$D8#
$F0; Description
: DESC_FDIVR_T_I
; Branch
: BRANCH_NORMAL
),
581 (Name
: 'FDIVR' + FP_I
+ FP_T
; Code
: #
$DC#
$F8; Description
: DESC_FDIVR_I_T
; Branch
: BRANCH_NORMAL
),
582 (Name
: 'FDIVRP' + FP_X
; Code
: #
$DE#
$F1; Description
: DESC_FDIVRP
; Branch
: BRANCH_NORMAL
),
583 (Name
: 'FDIVRP' + FP_T
+ FP_T
; Code
: #
$DE#
$F8; Description
: DESC_FDIVRP_I_T
; Branch
: BRANCH_NORMAL
),
584 (Name
: 'FDIVRP' + FP_I
+ FP_T
; Code
: #
$DE#
$F8; Description
: DESC_FDIVRP_I_T
; Branch
: BRANCH_NORMAL
),
585 (Name
: 'FFREE' + FP_T
; Code
: #
$DD#
$C0; Description
: DESC_FFREE_I
; Branch
: BRANCH_NORMAL
),
586 (Name
: 'FFREE' + FP_I
; Code
: #
$DD#
$C0; Description
: DESC_FFREE_I
; Branch
: BRANCH_NORMAL
),
587 (Name
: 'FIADD' + FP_2
; Code
: #
$DE#
$00; Description
: DESC_FIADD_2
; Branch
: BRANCH_NORMAL
),
588 (Name
: 'FIADD' + FP_4
; Code
: #
$DA#
$00; Description
: DESC_FIADD_4
; Branch
: BRANCH_NORMAL
),
589 (Name
: 'FICOM' + FP_2
; Code
: #
$DE#
$10; Description
: DESC_FICOM_2
; Branch
: BRANCH_NORMAL
),
590 (Name
: 'FICOM' + FP_4
; Code
: #
$DA#
$10; Description
: DESC_FICOM_4
; Branch
: BRANCH_NORMAL
),
591 (Name
: 'FICOMP' + FP_2
; Code
: #
$DE#
$18; Description
: DESC_FICOMP_2
; Branch
: BRANCH_NORMAL
),
592 (Name
: 'FICOMP' + FP_4
; Code
: #
$DA#
$18; Description
: DESC_FICOMP_4
; Branch
: BRANCH_NORMAL
),
593 (Name
: 'FIDIV' + FP_2
; Code
: #
$DE#
$30; Description
: DESC_FIDIV_2
; Branch
: BRANCH_NORMAL
),
594 (Name
: 'FIDIV' + FP_4
; Code
: #
$DA#
$30; Description
: DESC_FIDIV_4
; Branch
: BRANCH_NORMAL
),
595 (Name
: 'FIDIVR' + FP_2
; Code
: #
$DE#
$38; Description
: DESC_FIDIVR_2
; Branch
: BRANCH_NORMAL
),
596 (Name
: 'FIDIVR' + FP_4
; Code
: #
$DA#
$38; Description
: DESC_FIDIVR_4
; Branch
: BRANCH_NORMAL
),
597 (Name
: 'FILD' + FP_2
; Code
: #
$DF#
$00; Description
: DESC_FILD_2
; Branch
: BRANCH_NORMAL
),
598 (Name
: 'FILD' + FP_4
; Code
: #
$DB#
$00; Description
: DESC_FILD_4
; Branch
: BRANCH_NORMAL
),
599 (Name
: 'FILD' + FP_8
; Code
: #
$DF#
$28; Description
: DESC_FILD_8
; Branch
: BRANCH_NORMAL
),
600 (Name
: 'FINCSTP' + FP_X
; Code
: #
$D9#
$F7; Description
: DESC_FINCSTP
; Branch
: BRANCH_NORMAL
),
601 (Name
: 'FINIT' + FP_X
; Code
: #
$9B#
$DB#
$E3; Description
: DESC_FINIT
; Branch
: BRANCH_NORMAL
),
602 (Name
: 'FIST' + FP_2
; Code
: #
$DF#
$10; Description
: DESC_FIST_2
; Branch
: BRANCH_NORMAL
),
603 (Name
: 'FIST' + FP_4
; Code
: #
$DB#
$10; Description
: DESC_FIST_4
; Branch
: BRANCH_NORMAL
),
604 (Name
: 'FISTP' + FP_2
; Code
: #
$DF#
$18; Description
: DESC_FISTP_2
; Branch
: BRANCH_NORMAL
),
605 (Name
: 'FISTP' + FP_4
; Code
: #
$DB#
$18; Description
: DESC_FISTP_4
; Branch
: BRANCH_NORMAL
),
606 (Name
: 'FISTP' + FP_8
; Code
: #
$DF#
$38; Description
: DESC_FISTP_8
; Branch
: BRANCH_NORMAL
),
607 (Name
: 'FISTTP' + FP_2
; Code
: #
$DF#
$08; Description
: DESC_FISTTP_2
; Branch
: BRANCH_NORMAL
),
608 (Name
: 'FISTTP' + FP_4
; Code
: #
$DB#
$08; Description
: DESC_FISTTP_4
; Branch
: BRANCH_NORMAL
),
609 (Name
: 'FISTTP' + FP_8
; Code
: #
$DD#
$08; Description
: DESC_FISTTP_8
; Branch
: BRANCH_NORMAL
),
610 (Name
: 'FISUB' + FP_2
; Code
: #
$DE#
$20; Description
: DESC_FISUB_2
; Branch
: BRANCH_NORMAL
),
611 (Name
: 'FISUB' + FP_4
; Code
: #
$DA#
$20; Description
: DESC_FISUB_4
; Branch
: BRANCH_NORMAL
),
612 (Name
: 'FISUBR' + FP_2
; Code
: #
$DE#
$28; Description
: DESC_FISUBR_2
; Branch
: BRANCH_NORMAL
),
613 (Name
: 'FISUBR' + FP_4
; Code
: #
$DA#
$28; Description
: DESC_FISUBR_4
; Branch
: BRANCH_NORMAL
),
614 (Name
: 'FLD' + FP_S
; Code
: #
$D9#
$00; Description
: DESC_FLD_S
; Branch
: BRANCH_NORMAL
),
615 (Name
: 'FLD' + FP_D
; Code
: #
$DD#
$00; Description
: DESC_FLD_D
; Branch
: BRANCH_NORMAL
),
616 (Name
: 'FLD' + FP_E
; Code
: #
$DB#
$28; Description
: DESC_FLD_E
; Branch
: BRANCH_NORMAL
),
617 (Name
: 'FLD' + FP_T
; Code
: #
$D9#
$C0; Description
: DESC_FLD_I
; Branch
: BRANCH_NORMAL
),
618 (Name
: 'FLD' + FP_I
; Code
: #
$D9#
$C0; Description
: DESC_FLD_I
; Branch
: BRANCH_NORMAL
),
619 (Name
: 'FLD1' + FP_X
; Code
: #
$D9#
$E8; Description
: DESC_FLD1
; Branch
: BRANCH_NORMAL
),
620 (Name
: 'FLDCW' + FP_C
; Code
: #
$D9#
$28; Description
: DESC_FLDCW_C
; Branch
: BRANCH_NORMAL
),
621 (Name
: 'FLDENV' + FP_14
; Code
: #
$66#
$D9#
$20; Description
: DESC_FLDENV_14
; Branch
: BRANCH_NORMAL
),
622 (Name
: 'FLDENV' + FP_28
; Code
: #
$D9#
$20; Description
: DESC_FLDENV_28
; Branch
: BRANCH_NORMAL
),
623 (Name
: 'FLDL2E' + FP_X
; Code
: #
$D9#
$EA; Description
: DESC_FLDL2E
; Branch
: BRANCH_NORMAL
),
624 (Name
: 'FLDL2T' + FP_X
; Code
: #
$D9#
$E9; Description
: DESC_FLDL2T
; Branch
: BRANCH_NORMAL
),
625 (Name
: 'FLDLG2' + FP_X
; Code
: #
$D9#
$EC; Description
: DESC_FLDLG2
; Branch
: BRANCH_NORMAL
),
626 (Name
: 'FLDLN2' + FP_X
; Code
: #
$D9#
$ED; Description
: DESC_FLDLN2
; Branch
: BRANCH_NORMAL
),
627 (Name
: 'FLDPI' + FP_X
; Code
: #
$D9#
$EB; Description
: DESC_FLDPI
; Branch
: BRANCH_NORMAL
),
628 (Name
: 'FLDZ' + FP_X
; Code
: #
$D9#
$EE; Description
: DESC_FLDZ
; Branch
: BRANCH_NORMAL
),
629 (Name
: 'FMUL' + FP_S
; Code
: #
$D8#
$08; Description
: DESC_FMUL_S
; Branch
: BRANCH_NORMAL
),
630 (Name
: 'FMUL' + FP_D
; Code
: #
$DC#
$08; Description
: DESC_FMUL_D
; Branch
: BRANCH_NORMAL
),
631 (Name
: 'FMUL' + FP_T
+ FP_T
; Code
: #
$D8#
$C8; Description
: DESC_FMUL_T_I
; Branch
: BRANCH_NORMAL
),
632 (Name
: 'FMUL' + FP_T
+ FP_I
; Code
: #
$D8#
$C8; Description
: DESC_FMUL_T_I
; Branch
: BRANCH_NORMAL
),
633 (Name
: 'FMUL' + FP_I
+ FP_T
; Code
: #
$DC#
$C8; Description
: DESC_FMUL_I_T
; Branch
: BRANCH_NORMAL
),
634 (Name
: 'FMULP' + FP_T
+ FP_T
; Code
: #
$DE#
$C8; Description
: DESC_FMULP_I_T
; Branch
: BRANCH_NORMAL
),
635 (Name
: 'FMULP' + FP_I
+ FP_T
; Code
: #
$DE#
$C8; Description
: DESC_FMULP_I_T
; Branch
: BRANCH_NORMAL
),
636 (Name
: 'FMULP' + FP_X
; Code
: #
$DE#
$C9; Description
: DESC_FMULP
; Branch
: BRANCH_NORMAL
),
637 (Name
: 'FIMUL' + FP_2
; Code
: #
$DE#
$08; Description
: DESC_FIMUL_2
; Branch
: BRANCH_NORMAL
),
638 (Name
: 'FIMUL' + FP_4
; Code
: #
$DA#
$08; Description
: DESC_FIMUL_4
; Branch
: BRANCH_NORMAL
),
639 (Name
: 'FNCLEX' + FP_X
; Code
: #
$DB#
$E2; Description
: DESC_FNCLEX
; Branch
: BRANCH_NORMAL
),
640 (Name
: 'FNINIT' + FP_X
; Code
: #
$DB#
$E3; Description
: DESC_FNINIT
; Branch
: BRANCH_NORMAL
),
641 (Name
: 'FNOP' + FP_X
; Code
: #
$D9#
$D0; Description
: DESC_FNOP
; Branch
: BRANCH_NORMAL
),
642 (Name
: 'FNSAVE' + FP_94
; Code
: #
$66#
$DD#
$30; Description
: DESC_FNSAVE_94
; Branch
: BRANCH_NORMAL
),
643 (Name
: 'FNSAVE' + FP_108
; Code
: #
$DD#
$30; Description
: DESC_FNSAVE_108
; Branch
: BRANCH_NORMAL
),
644 (Name
: 'FNSTCW' + FP_C
; Code
: #
$D9#
$38; Description
: DESC_FNSTCW_C
; Branch
: BRANCH_NORMAL
),
645 (Name
: 'FNSTENV' + FP_14
; Code
: #
$66#
$D9#
$30; Description
: DESC_FNSTENV_14
; Branch
: BRANCH_NORMAL
),
646 (Name
: 'FNSTENV' + FP_28
; Code
: #
$D9#
$30; Description
: DESC_FNSTENV_28
; Branch
: BRANCH_NORMAL
),
647 (Name
: 'FNSTSW' + FP_W
; Code
: #
$DD#
$38; Description
: DESC_FNSTSW_W
; Branch
: BRANCH_NORMAL
),
648 (Name
: 'FNSTSW' + FP_AX
; Code
: #
$DF#
$E0; Description
: DESC_FNSTSW_AX
; Branch
: BRANCH_NORMAL
),
649 (Name
: 'FPATAN' + FP_X
; Code
: #
$D9#
$F3; Description
: DESC_FPATAN
; Branch
: BRANCH_NORMAL
),
650 (Name
: 'FPREM' + FP_X
; Code
: #
$D9#
$F8; Description
: DESC_FPREM
; Branch
: BRANCH_NORMAL
),
651 (Name
: 'FPREM1' + FP_X
; Code
: #
$D9#
$F5; Description
: DESC_FPREM1
; Branch
: BRANCH_NORMAL
),
652 (Name
: 'FPTAN' + FP_X
; Code
: #
$D9#
$F2; Description
: DESC_FPTAN
; Branch
: BRANCH_NORMAL
),
653 (Name
: 'FRNDINT' + FP_X
; Code
: #
$D9#
$FC; Description
: DESC_FRNDINT
; Branch
: BRANCH_NORMAL
),
654 (Name
: 'FRSTOR' + FP_94
; Code
: #
$66#
$DD#
$20; Description
: DESC_FRSTOR_94
; Branch
: BRANCH_NORMAL
),
655 (Name
: 'FRSTOR' + FP_108
; Code
: #
$DD#
$20; Description
: DESC_FRSTOR_108
; Branch
: BRANCH_NORMAL
),
656 (Name
: 'FSAVE' + FP_94
; Code
: #
$9B#
$66#
$DD#
$30; Description
: DESC_FSAVE_94
; Branch
: BRANCH_NORMAL
),
657 (Name
: 'FSAVE' + FP_108
; Code
: #
$9B#
$DD#
$30; Description
: DESC_FSAVE_108
; Branch
: BRANCH_NORMAL
),
658 (Name
: 'FSCALE' + FP_X
; Code
: #
$D9#
$FD; Description
: DESC_FSCALE
; Branch
: BRANCH_NORMAL
),
659 (Name
: 'FSIN' + FP_X
; Code
: #
$D9#
$FE; Description
: DESC_FSIN
; Branch
: BRANCH_NORMAL
),
660 (Name
: 'FSINCOS' + FP_X
; Code
: #
$D9#
$FB; Description
: DESC_FSINCOS
; Branch
: BRANCH_NORMAL
),
661 (Name
: 'FSQRT' + FP_X
; Code
: #
$D9#
$FA; Description
: DESC_FSQRT
; Branch
: BRANCH_NORMAL
),
662 (Name
: 'FST' + FP_S
; Code
: #
$D9#
$10; Description
: DESC_FST_S
; Branch
: BRANCH_NORMAL
),
663 (Name
: 'FST' + FP_D
; Code
: #
$DD#
$10; Description
: DESC_FST_D
; Branch
: BRANCH_NORMAL
),
664 (Name
: 'FST' + FP_T
; Code
: #
$DD#
$D0; Description
: DESC_FST_I
; Branch
: BRANCH_NORMAL
),
665 (Name
: 'FST' + FP_I
; Code
: #
$DD#
$D0; Description
: DESC_FST_I
; Branch
: BRANCH_NORMAL
),
666 (Name
: 'FSTCW' + FP_C
; Code
: #
$9B#
$D9#
$38; Description
: DESC_FSTCW_C
; Branch
: BRANCH_NORMAL
),
667 (Name
: 'FSTENV' + FP_14
; Code
: #
$9B#
$66#
$D9#
$30; Description
: DESC_FSTENV_14
; Branch
: BRANCH_NORMAL
),
668 (Name
: 'FSTENV' + FP_28
; Code
: #
$9B#
$D9#
$30; Description
: DESC_FSTENV_28
; Branch
: BRANCH_NORMAL
),
669 (Name
: 'FSTP' + FP_S
; Code
: #
$D9#
$18; Description
: DESC_FSTP_S
; Branch
: BRANCH_NORMAL
),
670 (Name
: 'FSTP' + FP_D
; Code
: #
$DD#
$18; Description
: DESC_FSTP_D
; Branch
: BRANCH_NORMAL
),
671 (Name
: 'FSTP' + FP_E
; Code
: #
$DB#
$38; Description
: DESC_FSTP_E
; Branch
: BRANCH_NORMAL
),
672 (Name
: 'FSTP' + FP_T
; Code
: #
$DD#
$D8; Description
: DESC_FSTP_I
; Branch
: BRANCH_NORMAL
),
673 (Name
: 'FSTP' + FP_I
; Code
: #
$DD#
$D8; Description
: DESC_FSTP_I
; Branch
: BRANCH_NORMAL
),
674 (Name
: 'FSTSW' + FP_W
; Code
: #
$9B#
$DD#
$38; Description
: DESC_FSTSW_W
; Branch
: BRANCH_NORMAL
),
675 (Name
: 'FSTSW' + FP_AX
; Code
: #
$9B#
$DF#
$E0; Description
: DESC_FSTSW_AX
; Branch
: BRANCH_NORMAL
),
676 (Name
: 'FSUB' + FP_S
; Code
: #
$D8#
$20; Description
: DESC_FSUB_S
; Branch
: BRANCH_NORMAL
),
677 (Name
: 'FSUB' + FP_D
; Code
: #
$DC#
$20; Description
: DESC_FSUB_D
; Branch
: BRANCH_NORMAL
),
678 (Name
: 'FSUB' + FP_T
+ FP_T
; Code
: #
$D8#
$E0; Description
: DESC_FSUB_T_I
; Branch
: BRANCH_NORMAL
),
679 (Name
: 'FSUB' + FP_T
+ FP_I
; Code
: #
$D8#
$E0; Description
: DESC_FSUB_T_I
; Branch
: BRANCH_NORMAL
),
680 (Name
: 'FSUB' + FP_I
+ FP_T
; Code
: #
$DC#
$E8; Description
: DESC_FSUB_I_T
; Branch
: BRANCH_NORMAL
),
681 (Name
: 'FSUBP' + FP_T
+ FP_T
; Code
: #
$DE#
$E8; Description
: DESC_FSUBP_I_T
; Branch
: BRANCH_NORMAL
),
682 (Name
: 'FSUBP' + FP_I
+ FP_T
; Code
: #
$DE#
$E8; Description
: DESC_FSUBP_I_T
; Branch
: BRANCH_NORMAL
),
683 (Name
: 'FSUBP' + FP_X
; Code
: #
$DE#
$E9; Description
: DESC_FSUBP
; Branch
: BRANCH_NORMAL
),
684 (Name
: 'FSUBR' + FP_S
; Code
: #
$D8#
$28; Description
: DESC_FSUBR_S
; Branch
: BRANCH_NORMAL
),
685 (Name
: 'FSUBR' + FP_D
; Code
: #
$DC#
$28; Description
: DESC_FSUBR_D
; Branch
: BRANCH_NORMAL
),
686 (Name
: 'FSUBR' + FP_T
+ FP_T
; Code
: #
$D8#
$E8; Description
: DESC_FSUBR_T_I
; Branch
: BRANCH_NORMAL
),
687 (Name
: 'FSUBR' + FP_T
+ FP_I
; Code
: #
$D8#
$E8; Description
: DESC_FSUBR_T_I
; Branch
: BRANCH_NORMAL
),
688 (Name
: 'FSUBR' + FP_I
+ FP_T
; Code
: #
$DC#
$E0; Description
: DESC_FSUBR_I_T
; Branch
: BRANCH_NORMAL
),
689 (Name
: 'FSUBRP' + FP_X
; Code
: #
$DE#
$E1; Description
: DESC_FSUBRP
; Branch
: BRANCH_NORMAL
),
690 (Name
: 'FSUBRP' + FP_T
+ FP_T
; Code
: #
$DE#
$E0; Description
: DESC_FSUBRP_I_T
; Branch
: BRANCH_NORMAL
),
691 (Name
: 'FSUBRP' + FP_I
+ FP_T
; Code
: #
$DE#
$E0; Description
: DESC_FSUBRP_I_T
; Branch
: BRANCH_NORMAL
),
692 (Name
: 'FTST' + FP_X
; Code
: #
$D9#
$E4; Description
: DESC_FTST
; Branch
: BRANCH_NORMAL
),
693 (Name
: 'FUCOM' + FP_X
; Code
: #
$DD#
$E1; Description
: DESC_FUCOM
; Branch
: BRANCH_NORMAL
),
694 (Name
: 'FUCOM' + FP_T
; Code
: #
$DD#
$E0; Description
: DESC_FUCOM_I
; Branch
: BRANCH_NORMAL
),
695 (Name
: 'FUCOM' + FP_I
; Code
: #
$DD#
$E0; Description
: DESC_FUCOM_I
; Branch
: BRANCH_NORMAL
),
696 (Name
: 'FUCOMI' + FP_T
+ FP_T
; Code
: #
$DB#
$E8; Description
: DESC_FUCOMI_T_I
; Branch
: BRANCH_NORMAL
),
697 (Name
: 'FUCOMI' + FP_T
+ FP_I
; Code
: #
$DB#
$E8; Description
: DESC_FUCOMI_T_I
; Branch
: BRANCH_NORMAL
),
698 (Name
: 'FUCOMIP' + FP_T
+ FP_T
; Code
: #
$DF#
$E8; Description
: DESC_FUCOMIP_T_I
; Branch
: BRANCH_NORMAL
),
699 (Name
: 'FUCOMIP' + FP_T
+ FP_I
; Code
: #
$DF#
$E8; Description
: DESC_FUCOMIP_T_I
; Branch
: BRANCH_NORMAL
),
700 (Name
: 'FUCOMP' + FP_X
; Code
: #
$DD#
$E9; Description
: DESC_FUCOMP
; Branch
: BRANCH_NORMAL
),
701 (Name
: 'FUCOMP' + FP_T
; Code
: #
$DD#
$E8; Description
: DESC_FUCOMP_I
; Branch
: BRANCH_NORMAL
),
702 (Name
: 'FUCOMP' + FP_I
; Code
: #
$DD#
$E8; Description
: DESC_FUCOMP_I
; Branch
: BRANCH_NORMAL
),
703 (Name
: 'FUCOMPP' + FP_X
; Code
: #
$DA#
$E9; Description
: DESC_FUCOMPP
; Branch
: BRANCH_NORMAL
),
704 (Name
: 'FWAIT' + FP_X
; Code
: #
$9B; Description
: DESC_FWAIT
; Branch
: BRANCH_NORMAL
),
705 (Name
: 'FXAM' + FP_X
; Code
: #
$D9#
$E5; Description
: DESC_FXAM
; Branch
: BRANCH_NORMAL
),
706 (Name
: 'FXCH' + FP_X
; Code
: #
$D9#
$C9; Description
: DESC_FXCH
; Branch
: BRANCH_NORMAL
),
707 (Name
: 'FXCH' + FP_T
; Code
: #
$D9#
$C8; Description
: DESC_FXCH_I
; Branch
: BRANCH_NORMAL
),
708 (Name
: 'FXCH' + FP_I
; Code
: #
$D9#
$C8; Description
: DESC_FXCH_I
; Branch
: BRANCH_NORMAL
),
709 (Name
: 'FXTRACT' + FP_X
; Code
: #
$D9#
$F4; Description
: DESC_FXTRACT
; Branch
: BRANCH_NORMAL
),
710 (Name
: 'FYL2X' + FP_X
; Code
: #
$D9#
$F1; Description
: DESC_FYL2X
; Branch
: BRANCH_NORMAL
),
711 (Name
: 'FYL2XP1' + FP_X
; Code
: #
$D9#
$F9; Description
: DESC_FYL2XP1
; Branch
: BRANCH_NORMAL
),
712 (Name
: 'JA' + FP_ADDR
; Code
: #
$77 + JCC_SHARED
; Description
: DESC_JA
; Branch
: BRANCH_BRANCH
),
713 (Name
: 'JAE' + FP_ADDR
; Code
: #
$73 + JCC_SHARED
; Description
: DESC_JAE
; Branch
: BRANCH_BRANCH
),
714 (Name
: 'JB' + FP_ADDR
; Code
: #
$72 + JCC_SHARED
; Description
: DESC_JB
; Branch
: BRANCH_BRANCH
),
715 (Name
: 'JBE' + FP_ADDR
; Code
: #
$76 + JCC_SHARED
; Description
: DESC_JBE
; Branch
: BRANCH_BRANCH
),
716 (Name
: 'JC' + FP_ADDR
; Code
: #
$72 + JCC_SHARED
; Description
: DESC_JC
; Branch
: BRANCH_BRANCH
),
717 (Name
: 'JE' + FP_ADDR
; Code
: #
$74 + JCC_SHARED
; Description
: DESC_JE
; Branch
: BRANCH_BRANCH
),
718 (Name
: 'JG' + FP_ADDR
; Code
: #
$7F + JCC_SHARED
; Description
: DESC_JG
; Branch
: BRANCH_BRANCH
),
719 (Name
: 'JGE' + FP_ADDR
; Code
: #
$7D + JCC_SHARED
; Description
: DESC_JGE
; Branch
: BRANCH_BRANCH
),
720 (Name
: 'JL' + FP_ADDR
; Code
: #
$7C + JCC_SHARED
; Description
: DESC_JL
; Branch
: BRANCH_BRANCH
),
721 (Name
: 'JLE' + FP_ADDR
; Code
: #
$7E + JCC_SHARED
; Description
: DESC_JLE
; Branch
: BRANCH_BRANCH
),
722 (Name
: 'JMP' + FP_ADDR
; Code
: JMP_RESULT_1
; Description
: DESC_JMP
; Branch
: BRANCH_BRANCH
),
723 (Name
: 'JNA' + FP_ADDR
; Code
: #
$76 + JCC_SHARED
; Description
: DESC_JNA
; Branch
: BRANCH_BRANCH
),
724 (Name
: 'JNAE' + FP_ADDR
; Code
: #
$72 + JCC_SHARED
; Description
: DESC_JNAE
; Branch
: BRANCH_BRANCH
),
725 (Name
: 'JNB' + FP_ADDR
; Code
: #
$73 + JCC_SHARED
; Description
: DESC_JNB
; Branch
: BRANCH_BRANCH
),
726 (Name
: 'JNBE' + FP_ADDR
; Code
: #
$77 + JCC_SHARED
; Description
: DESC_JNBE
; Branch
: BRANCH_BRANCH
),
727 (Name
: 'JNC' + FP_ADDR
; Code
: #
$73 + JCC_SHARED
; Description
: DESC_JNC
; Branch
: BRANCH_BRANCH
),
728 (Name
: 'JNE' + FP_ADDR
; Code
: #
$75 + JCC_SHARED
; Description
: DESC_JNE
; Branch
: BRANCH_BRANCH
),
729 (Name
: 'JNG' + FP_ADDR
; Code
: #
$7E + JCC_SHARED
; Description
: DESC_JNG
; Branch
: BRANCH_BRANCH
),
730 (Name
: 'JNGE' + FP_ADDR
; Code
: #
$7C + JCC_SHARED
; Description
: DESC_JNGE
; Branch
: BRANCH_BRANCH
),
731 (Name
: 'JNL' + FP_ADDR
; Code
: #
$7D + JCC_SHARED
; Description
: DESC_JNL
; Branch
: BRANCH_BRANCH
),
732 (Name
: 'JNLE' + FP_ADDR
; Code
: #
$7F + JCC_SHARED
; Description
: DESC_JNLE
; Branch
: BRANCH_BRANCH
),
733 (Name
: 'JNO' + FP_ADDR
; Code
: #
$71 + JCC_SHARED
; Description
: DESC_JNO
; Branch
: BRANCH_BRANCH
),
734 (Name
: 'JNP' + FP_ADDR
; Code
: #
$7B + JCC_SHARED
; Description
: DESC_JNP
; Branch
: BRANCH_BRANCH
),
735 (Name
: 'JNS' + FP_ADDR
; Code
: #
$79 + JCC_SHARED
; Description
: DESC_JNS
; Branch
: BRANCH_BRANCH
),
736 (Name
: 'JNZ' + FP_ADDR
; Code
: #
$75 + JCC_SHARED
; Description
: DESC_JNZ
; Branch
: BRANCH_BRANCH
),
737 (Name
: 'JO' + FP_ADDR
; Code
: #
$70 + JCC_SHARED
; Description
: DESC_JO
; Branch
: BRANCH_BRANCH
),
738 (Name
: 'JP' + FP_ADDR
; Code
: #
$7A + JCC_SHARED
; Description
: DESC_JP
; Branch
: BRANCH_BRANCH
),
739 (Name
: 'JPE' + FP_ADDR
; Code
: #
$7A + JCC_SHARED
; Description
: DESC_JPE
; Branch
: BRANCH_BRANCH
),
740 (Name
: 'JPO' + FP_ADDR
; Code
: #
$7B + JCC_SHARED
; Description
: DESC_JPO
; Branch
: BRANCH_BRANCH
),
741 (Name
: 'JS' + FP_ADDR
; Code
: #
$78 + JCC_SHARED
; Description
: DESC_JS
; Branch
: BRANCH_BRANCH
),
742 (Name
: 'JZ' + FP_ADDR
; Code
: #
$74 + JCC_SHARED
; Description
: DESC_JZ
; Branch
: BRANCH_BRANCH
),
743 (Name
: 'WAIT' + FP_X
; Code
: #
$9B; Description
: DESC_FWAIT
; Branch
: BRANCH_NORMAL
)
746 { Operands Definition }
748 sOperands
: array [0..12] of TOperandRecord
= (
749 (Name
: 'ST'; Code
: ''; OperandType
: FPU_OPERAND_ST_0
; Default
: ''; Data
: nil),
750 (Name
: 'ST(0)'; Code
: ''; OperandType
: FPU_OPERAND_ST_0
; Default
: ''; Data
: nil),
751 (Name
: 'ST(1)'; Code
: #
$01; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
752 (Name
: 'ST(2)'; Code
: #
$02; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
753 (Name
: 'ST(3)'; Code
: #
$03; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
754 (Name
: 'ST(4)'; Code
: #
$04; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
755 (Name
: 'ST(5)'; Code
: #
$05; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
756 (Name
: 'ST(6)'; Code
: #
$06; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
757 (Name
: 'ST(7)'; Code
: #
$07; OperandType
: FPU_OPERAND_ST_I
; Default
: ''; Data
: nil),
758 (Name
: 'WORD_1'; Code
: #
$05; OperandType
: FPU_OPERAND_M16_INT
; Default
: DEFV_M16_INT
; Data
: nil),
759 (Name
: 'DWORD_1'; Code
: #
$05; OperandType
: FPU_OPERAND_M32_INT
; Default
: DEFV_M32_INT
; Data
: nil),
760 (Name
: 'QWORD_1'; Code
: #
$05; OperandType
: FPU_OPERAND_M64_INT
; Default
: DEFV_M64_INT
; Data
: nil),
761 (Name
: 'SINGLE_1'; Code
: #
$05; OperandType
: FPU_OPERAND_M32_FP
; Default
: DEFV_M32_FP
; Data
: nil)
764 { Operands Type Definition }
766 sOperandTypes
: array [0..18] of TOperandTypeRecord
= (
767 (OperandType
: FPU_OPERAND_ERROR
; Description
: DESC_OPER_ERROR
),
768 (OperandType
: FPU_OPERAND_NONE
; Description
: DESC_OPER_NONE
),
769 (OperandType
: FPU_OPERAND_ST_0
; Description
: DESC_OPER_ST_0
),
770 (OperandType
: FPU_OPERAND_ST_I
; Description
: DESC_OPER_ST_I
),
771 (OperandType
: FPU_OPERAND_AX
; Description
: DESC_OPER_AX
),
772 (OperandType
: FPU_OPERAND_M16_INT
; Description
: DESC_OPER_M16_INT
),
773 (OperandType
: FPU_OPERAND_M32_INT
; Description
: DESC_OPER_M32_INT
),
774 (OperandType
: FPU_OPERAND_M64_INT
; Description
: DESC_OPER_M64_INT
),
775 (OperandType
: FPU_OPERAND_ADDR
; Description
: DESC_OPER_ADDR
),
776 (OperandType
: FPU_OPERAND_M80_BCD
; Description
: DESC_OPER_M80_BCD
),
777 (OperandType
: FPU_OPERAND_M32_FP
; Description
: DESC_OPER_M32_FP
),
778 (OperandType
: FPU_OPERAND_M64_FP
; Description
: DESC_OPER_M64_FP
),
779 (OperandType
: FPU_OPERAND_M80_FP
; Description
: DESC_OPER_M80_FP
),
780 (OperandType
: FPU_OPERAND_M2BYTE_CW
; Description
: DESC_OPER_M2BYTE_CW
),
781 (OperandType
: FPU_OPERAND_M2BYTE_SW
; Description
: DESC_OPER_M2BYTE_SW
),
782 (OperandType
: FPU_OPERAND_M14BYTE_ENV
; Description
: DESC_OPER_M14BYTE_ENV
),
783 (OperandType
: FPU_OPERAND_M28BYTE_ENV
; Description
: DESC_OPER_M28BYTE_ENV
),
784 (OperandType
: FPU_OPERAND_M94BYTE_STAT
; Description
: DESC_OPER_M94BYTE_STAT
),
785 (OperandType
: FPU_OPERAND_M108BYTE_STAT
; Description
: DESC_OPER_M108BYTE_STAT
)
788 { CPU Features Flags }
790 CPU_SSE3_PRESENT
: Boolean;
794 procedure CheckCPUFeatures
;
802 mov CPU_SSE3_PRESENT
, cl
804 if not CPU_SSE3_PRESENT
then
805 for i
:= 0 to (Length(sInstructions
) - 1) do
806 if (ParseBeforeFirst(sInstructions
[i
].Name
, FPU_SPACE
) = 'FISTTP') then
807 with sInstructions
[i
] do
809 Description
:= Description
+ DESC_DO
+ INST_INST_UNSUPPORTED
;
810 Branch
:= BRANCH_UNSUPPORTED
;