📄 disasmtables.pas
字号:
// E
'%c ', 'psraw #Pq , #Qd ', 'psrad #Pq , #Qd ' ,'%c ',
'%c ', 'pmulhw #Pq , #Qd ', '%c ', '%c ',
'psubsb #Pq , #Qq ', 'psubsw #Pq , #Qq ', '%c ', 'por #Pq , #Qq ',
'paddsb #Pq , #Qq ', 'paddsw #Pq , #Qq ', '%c ', 'pxor #Pq , #Qq ',
// F
'%c ', 'psllw #Pq , #Qd ', 'pslld #Pq , #Qd ', 'prllq #Pq , #Qd ',
'%c ', 'pmaddwd #Pq , #Qd ', '%c ', '%c ',
'psubb #Pq , #Qq ', 'psubw #Pq , #Qq ', 'psubd #Pq , #Qq ', '%c ',
'paddb #Pq , #Qq ', 'paddw #Pq , #Qq ', 'paddd #Pq , #Qq ', '%c ');
// @g
GroupsOpcodes: array['a'..'j', 0..7] of string =
// 'a'
(('add ', 'or ', 'adc ', 'sbb ',
'and ', 'sub ', 'xor ', 'cmp '),
// 'b'
('rol ', 'ror ', 'rcl ', 'rcr ',
'shl ', 'shr ', '%c ', 'sar '),
// 'c'
('test ', '%c ', 'not ', 'neg ',
'mul ', 'imul ', 'div ', 'idiv '),
// 'd'
('inc ', 'dec ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c '),
// 'e'
('inc ', 'dec ', 'call ', 'call ',
'jmp ', 'jmp ', 'push ', '%c '),
// 'f'
('sldt #Ew ', 'str #Ew ', 'lldt #Ew ', 'ltr #Ew ',
'verr #Ew ', 'verw #Ew ', '%c ', '%c '),
// 'g'
('%c ', '%c ', 'psrld #Pq , #Ib ', '%c ',
'psrad #Pq , #Ib ', '%c ', 'pslld #Pq , #Ib ', '%c '),
// 'h'
('%c ', '%c ', 'psrlw #Pq , #Ib ', '%c ',
'psraw #Pq , #Ib ', '%c ', 'psllw #Pq , #Ib ', '%c '),
// 'i'
('%c ', '%c ', 'psrlq #Pq , #Ib ', '%c ',
'%c ', '%c ', 'psllq #Pq , #Ib ', '%c '),
// 'j'
('%c ', 'cmpxchg8b #Mq ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c '));
// @h
GroupsOperands: array['1'..'4', 0..7] of string =
// '1' Group 3 with 8 bit operand
((', #Ib ', '', '', '', ', al', ', al', '', ''),
// '2' Group 3 with 16/32 bit operand
(', #Iv ', '', '', '', '', '', '', ''),
// '3' Group 4
('#Eb ', '#Eb ', '', '', '', '', '', ''),
// '4' Group 5
('#Ev ', '#Ev ', '#Ev ', '#Ep ', '#Ev ', '#Ep ', '#Ev ', ''));
// @c
// $b8 .. $bf represent 0..7 for when modrm byte is within $00 to $bf
FloatingPointOpcodes: array['a'..'h', $b8..$ff] of string =
// 'a'
(('fadd #Ed ', 'fmul #Ed ', 'fcom #Ed ', 'fcomp #Ed ',
'fsub #Ed ', 'fsubr #Ed ', 'fdiv #Ed ', 'fdivr #Ed ',
'fadd st(0)', 'fadd st(1)', 'fadd st(2)', 'fadd st(3)',
'fadd st(4)', 'fadd st(5)', 'fadd st(6)', 'fadd st(7)',
'fmul st(0), st(0)', 'fmul st(0), st(1)', 'fmul st(0), st(2)', 'fmul st(0), st(3)',
'fmul st(0), st(4)', 'fmul st(0), st(5)', 'fmul st(0), st(6)', 'fmul st(0), st(7)',
'fcom st(0)', 'fcom st(1)', 'fcom st(2)', 'fcom st(3)',
'fcom st(4)', 'fcom st(5)', 'fcom st(6)', 'fcom st(7)',
'fcomp st(0)', 'fcomp st(1)', 'fcomp st(2)', 'fcomp st(3)',
'fcomp st(4)', 'fcomp st(5)', 'fcomp st(6)', 'fcomp st(7)',
'fsub st(0), st(0)', 'fsub st(0), st(1)', 'fsub st(0), st(2)', 'fsub st(0), st(3)',
'fsub st(0), st(4)', 'fsub st(0), st(5)', 'fsub st(0), st(6)', 'fsub st(0), st(7)',
'fsubr st(0), st(0)', 'fsubr st(0), st(1)', 'fsubr st(0), st(2)', 'fsubr st(0), st(3)',
'fsubr st(0), st(4)', 'fsubr st(0), st(5)', 'fsubr st(0), st(6)', 'fsubr st(0), st(7)',
'fdiv st(0), st(0)', 'fdiv st(0), st(1)', 'fdiv st(0), st(2)', 'fdiv st(0), st(3)',
'fdiv st(0), st(4)', 'fdiv st(0), st(5)', 'fdiv st(0), st(6)', 'fdiv st(0), st(7)',
'fdivr st(0), st(0)', 'fdivr st(0), st(1)', 'fdivr st(0), st(2)', 'fdivr st(0), st(3)',
'fdivr st(0), st(4)', 'fdivr st(0), st(5)', 'fdivr st(0), st(6)', 'fdivr st(0), st(7)'),
// 'b'
('fld #Ed ', '%c ', 'fst #Ed ', 'fstp #Ed ',
'fldenv #E ', 'fldcw #Ew ', 'fstenv #E ', 'fstcw #Ew ',
'fld st(0)', 'fld st(1)', 'fld st(2)', 'fld st(3)',
'fld st(4)', 'fld st(5)', 'fld st(6)', 'fld st(7)',
'fxch st(0)', 'fxch st(1)', 'fxch st(2)', 'fxch st(3)',
'fxch st(4)', 'fxch st(5)', 'fxch st(6)', 'fxch st(7)',
'fnop', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'fchs', 'fabs', '%c ', '%c ',
'ftst', 'fxam', '%c ', '%c ',
'fld1', 'fldl2t', 'fldl2e', 'fldp1',
'fldlg2', 'fldln2', 'fldz', '%c ',
'f2xm1', 'fyl2x', 'fptan', 'fpatan',
'fxtract', 'fprem1', 'fdecstp', 'fincstp',
'fprem', 'fyl2xp1', 'fsqrt', 'fsincos',
'frndint', 'fscale', 'fsing', 'fcos'),
// 'c'
('fiadd #Ed ', 'fimul #Ed ', 'ficom #Ed ', 'ficomp #Ed ',
'fisub #Ed ', 'fisubr #Ed ', 'fidiv #Ed ', 'fidivr #Ed ',
'fcmovb st(0), st(0)', 'fcmovb st(0), st(1)', 'fcmovb st(0), st(2)', 'fcmovb st(0), st(3)',
'fcmovb st(0), st(4)', 'fcmovb st(0), st(5)', 'fcmovb st(0), st(6)', 'fcmovb st(0), st(7)',
'fcmove st(0), st(0)', 'fcmove st(0), st(1)', 'fcmove st(0), st(2)', 'fcmove st(0), st(3)',
'fcmove st(0), st(4)', 'fcmove st(0), st(5)', 'fcmove st(0), st(6)', 'fcmove st(0), st(7)',
'fcmovbe st(0), st(0)', 'fcmovbe st(0), st(1)', 'fcmovbe st(0), st(2)', 'fcmovbe st(0), st(3)',
'fcmovbe st(0), st(4)', 'fcmovbe st(0), st(5)', 'fcmovbe st(0), st(6)', 'fcmovbe st(0), st(7)',
'fcmovu st(0), st(0)', 'fcmovu st(0), st(1)', 'fcmovu st(0), st(2)', 'fcmovu st(0), st(3)',
'fcmovu st(0), st(4)', 'fcmovu st(0), st(5)', 'fcmovu st(0), st(6)', 'fcmovu st(0), st(7)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', 'fucompp', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c '),
// 'd'
('fild #Ed ', '%c ', 'fist #Ed ', 'fistp #Ed ',
'%c ', 'fld #Et ', '%c ', 'fstp #Et ',
'fcmovnb st(0), st(0)', 'fcmovnb st(0), st(1)', 'fcmovnb st(0), st(2)', 'fcmovnb st(0), st(3)',
'fcmovnb st(0), st(4)', 'fcmovnb st(0), st(5)', 'fcmovnb st(0), st(6)', 'fcmovnb st(0), st(7)',
'fcmovne st(0), st(0)', 'fcmovne st(0), st(1)', 'fcmovne st(0), st(2)', 'fcmovne st(0), st(3)',
'fcmovne st(0), st(4)', 'fcmovne st(0), st(5)', 'fcmovne st(0), st(6)', 'fcmovne st(0), st(7)',
'fcmovnbe st(0), st(0)', 'fcmovnbe st(0), st(1)', 'fcmovnbe st(0), st(2)', 'fcmovnbe st(0), st(3)',
'fcmovnbe st(0), st(4)', 'fcmovnbe st(0), st(5)', 'fcmovnbe st(0), st(6)', 'fcmovnbe st(0), st(7)',
'fcmovnu st(0), st(0)', 'fcmovnu st(0), st(1)', 'fcmovnu st(0), st(2)', 'fcmovnu st(0), st(3)',
'fcmovnu st(0), st(4)', 'fcmovnu st(0), st(5)', 'fcmovnu st(0), st(6)', 'fcmovnu st(0), st(7)',
'%c ', '%c ', 'fclex', 'finit',
'%c ', '%c ', '%c ', '%c ',
'fucomi st(0), st(0)', 'fucomi st(0), st(1)', 'fucomi st(0), st(2)', 'fucomi st(0), st(3)',
'fucomi st(0), st(4)', 'fucomi st(0), st(5)', 'fucomi st(0), st(6)', 'fucomi st(0), st(7)',
'fcomi st(0), st(0)', 'fcomi st(0), st(1)', 'fcomi st(0), st(2)', 'fcomi st(0), st(3)',
'fcomi st(0), st(4)', 'fcomi st(0), st(5)', 'fcomi st(0), st(6)', 'fcomi st(0), st(7)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c '),
// 'e'
('fadd #Eq ', 'fmul #Eq ', 'fcom #Eq ', 'fcomp #Eq ',
'fsub #Eq ', 'fsubr #Eq ', 'fdiv #Eq ', 'fdivr #Eq ',
'fadd st(0), st(0)', 'fadd st(1), st(0)', 'fadd st(2), st(0)', 'fadd st(3), st(0)',
'fadd st(4), st(0)', 'fadd st(5), st(0)', 'fadd st(6), st(0)', 'fadd st(7), st(0)',
'fmul st(0), st(0)', 'fmul st(1), st(0)', 'fmul st(2), st(0)', 'fmul st(3), st(0)',
'fmul st(4), st(0)', 'fmul st(5), st(0)', 'fmul st(6), st(0)', 'fmul st(7), st(0)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'fsubr st(0), st(0)', 'fsubr st(1), st(0)', 'fsubr st(2), st(0)', 'fsubr st(3), st(0)',
'fsubr st(4), st(0)', 'fsubr st(5), st(0)', 'fsubr st(6), st(0)', 'fsubr st(7), st(0)',
'fsub st(0), st(0)', 'fsub st(1), st(0)', 'fsub st(2), st(0)', 'fsub st(3), st(0)',
'fsub st(4), st(0)', 'fsub st(5), st(0)', 'fsub st(6), st(0)', 'fsub st(7), st(0)',
'fdivr st(0), st(0)', 'fdivr st(1), st(0)', 'fdivr st(2), st(0)', 'fdivr st(3), st(0)',
'fdivr st(4), st(0)', 'fdivr st(5), st(0)', 'fdivr st(6), st(0)', 'fdivr st(7), st(0)',
'fdiv st(0), st(0)', 'fdiv st(1), st(0)', 'fdiv st(2), st(0)', 'fdiv st(3), st(0)',
'fdiv st(4), st(0)', 'fdiv st(5), st(0)', 'fdiv st(6), st(0)', 'fdiv st(7), st(0)'),
// 'f'
('fld #Eq ', '%c ', 'fst #Eq ', 'fstp #Eq ',
'frstor #E ', '%c ', 'fsave #E ', 'fstsw #Ew ',
'ffree st(0)', 'ffree st(1)', 'ffree st(2)', 'ffree st(3)',
'ffree st(4)', 'ffree st(5)', 'ffree st(6)', 'ffree st(7)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'fst st(0)', 'fst st(1)', 'fst st(2)', 'fst st(3)',
'fst st(4)', 'fst st(5)', 'fst st(6)', 'fst st(7)',
'fstp st(0)', 'fstp st(1)', 'fstp st(2)', 'fstp st(3)',
'fstp st(4)', 'fstp st(5)', 'fstp st(6)', 'fstp st(7)',
'fucom st(0), st(0)', 'fucom st(1), st(0)', 'fucom st(2), st(0)', 'fucom st(3), st(0)',
'fucom st(4), st(0)', 'fucom st(5), st(0)', 'fucom st(6), st(0)', 'fucom st(7), st(0)',
'fucomp st(0)', 'fucomp st(1)', 'fucomp st(2)', 'fucomp st(3)',
'fucomp st(4)', 'fucomp st(5)', 'fucomp st(6)', 'fucomp st(7)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c '),
// 'g'
('fiadd #Ew ', 'fimul #Ew ', 'ficom #Ew ', 'ficomp #Ew ',
'fisub #Ew ', 'fisubr #Ew ', 'fidiv #Ew ', 'fidivr #Ew ',
'faddp st(0), st(0)', 'faddp st(1), st(0)', 'faddp st(2), st(0)', 'faddp st(3), st(0)',
'faddp st(4), st(0)', 'faddp st(5), st(0)', 'faddp st(6), st(0)', 'faddp st(7), st(0)',
'fmulp st(0), st(0)', 'fmulp st(1), st(0)', 'fmulp st(2), st(0)', 'fmulp st(3), st(0)',
'fmulp st(4), st(0)', 'fmulp st(5), st(0)', 'fmulp st(6), st(0)', 'fmulp st(7), st(0)',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', 'fcompp', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'fsubrp st(0), st(0)', 'fsubrp st(1), st(0)', 'fsubrp st(2), st(0)', 'fsubrp st(3), st(0)',
'fsubrp st(4), st(0)', 'fsubrp st(5), st(0)', 'fsubrp st(6), st(0)', 'fsubrp st(7), st(0)',
'fsubp st(0), st(0)', 'fsubp st(1), st(0)', 'fsubp st(2), st(0)', 'fsubp st(3), st(0)',
'fsubp st(4), st(0)', 'fsubp st(5), st(0)', 'fsubp st(6), st(0)', 'fsubp st(7), st(0)',
'fdivrp st(0), st(0)', 'fdivrp st(1), st(0)', 'fdivrp st(2), st(0)', 'fdivrp st(3), st(0)',
'fdivrp st(4), st(0)', 'fdivrp st(5), st(0)', 'fdivrp st(6), st(0)', 'fdivrp st(7), st(0)',
'fdivp st(0), st(0)', 'fdivp st(1), st(0)', 'fdivp st(2), st(0)', 'fdivp st(3), st(0)',
'fdivp st(4), st(0)', 'fdivp st(5), st(0)', 'fdivp st(6), st(0)', 'fdivp st(7), st(0)'),
// 'h'
('fild #Ew ', '%c ', 'fist #Ew ', 'fistp #Ew ',
'fbld #E ', 'fild #Eq ', 'fbstp #Et ', 'fistp #Eq ', '%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ' , '%c ' , '%c ' , '%c ' ,
'%c ', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'%c ' , '%c ' , '%c ' , '%c ' ,
'fstsw ax', '%c ', '%c ', '%c ',
'%c ', '%c ', '%c ', '%c ',
'fucomip st(0), st(0)', 'fucomip st(0), st(1)', 'fucomip st(0), st(2)', 'fucomip st(0), st(3)',
'fucomip st(0), st(4)', 'fucomip st(0), st(5)', 'fucomip st(0), st(6)', 'fucomip st(0), st(7)', 'fcomip st(0), st(0)', 'fcomip st(0), st(1)', 'fcomip st(0), st(2)', 'fcomip st(0), st(3)',
'fcomip st(0), st(4)', 'fcomip st(0), st(5)', 'fcomip st(0), st(6)', 'fcomip st(0), st(7)',
'%c ' , '%c ' , '%c ' , '%c ' ,
'%c ', '%c ', '%c ', '%c '));
implementation
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -