📄 dasmcte.h
字号:
{ "1000 10dw:mod grg rm" , "mov %p %1 , %0" , 0 } , // mov reg modm
{ "1100 011w:11 000 grg:i00" , "mov %0 , %1" , 0 } , // mov reg , imm
{ "1100 011w:mod 000 rm i00" , "mov %p %0 , %1" , 0 } , // mov rm , imm
{ "1011 w grg:i00" , "mov %0 , %1" , 0 } , // mov reg , imm alternate
{ "1010 00dw eax:a32" , "mov %0 , %p %1" , 0 } , // mov eax , disp
{ "1000 11d0 : 11 3sg grg :" , "mov %1 , %0" , 0 } ,
{ "1000 11d0 : mod 3sg rm" , "mov %1 , %0" , 0 } ,
{ "1010 0100:" , "%r_movsb" , 0 } ,
{ "oas 1010 0101:" , "%r_movsw" , 0 } ,
{ "nas 1010 0101:" , "%r_movsd" , 0 } ,
{ "0000 1111 : 1011 1110 : 11 g32 g08:" , "movsx %0 , %1" , 0 } ,
{ "0000 1111 : 1011 1111 : 11 g32 g16:" , "movsx %0 , %1" , 0 } ,
{ "0000 1111 : 1011 1110 : mod g32 rm" , "movsx %0 ,byte ptr %1" , 0 } ,
{ "0000 1111 : 1011 1111 : mod g32 rm" , "movsx %0 ,word ptr %1" , 0 } ,
{ "0000 1111 : 1011 0110 : 11 g32 g08:" , "movzx %0 , %1" , 0 } ,
{ "0000 1111 : 1011 0111 : 11 g32 g16:" , "movzx %0 , %1" , 0 } ,
{ "0000 1111 : 1011 0110 : mod g32 rm" , "movzx %0 ,byte ptr %1" , 0 } ,
{ "0000 1111 : 1011 0111 : mod g32 rm" , "movzx %0 ,word ptr %1" , 0 } ,
{ "1111 011w : 11 100 grg:" , "mul %0" , 0 } ,
{ "1111 011w : mod 100 rm" , "mul %p %0" , 0 } ,
{ "1111 011w : mod 011 grg:" , "neg %0" , 0 } ,
{ "1111 011w : mod 011 rm" , "neg %p %0" , 0 } ,
{ "1001 0000:" , "nop" , 0 } ,
{ "1111 011w : 11 010 grg:" , "not %0" , 0 } ,
{ "1111 011w : mod 010 rm" , "not %p %0" , 0 } ,
{ "0000 10dw : 11 grg grg:" , "or %1 , %0" , 0 } ,
{ "0000 10dw : mod grg rm" , "or %p %1 , %0" , 0 } ,
{ "1000 00sw : 11 001 grg : i00" , "or %0 , %1" , 0 } ,
{ "0000 110w eax : i00 " , "or %0 , %1" , 0 } ,
{ "1000 00sw : mod 001 rm i00" , "or %p %0 , %1" , 0 } ,
{ "1000 1111 : 11 000 grg:" , "pop %0" , 0 } ,
{ "0101 1 grg:" , "pop %0" , 0 } ,
{ "1000 1111 : mod 000 rm" , "pop %p %0" , 0 } ,
{ "0001 1111:" , "pop ds" , 0 } ,
{ "0000 0111:" , "pop es" , 0 } ,
{ "0001 0111:" , "pop ss" , 0 } ,
{ "0000 1111 : 1010 0001 :" , "pop fs" , 0 } ,
{ "0000 1111 : 1010 1001 :" , "pop gs" , 0 } ,
{ "oos 0110 0001:" , "popa" , 0 } ,
{ "nos 0110 0001:" , "popad" , 0 } ,
{ "oos 1001 1101:" , "popf" , 0 } ,
{ "nos 1001 1101:" , "popfd" , 0 } ,
{ "1111 1111:11 110 grg:" , "push %0" }, // push reg
{ "0101 0 grg:" , "push %0" }, // push reg
{ "1111 1111 : mod 110 rm" , "push %p %0" }, // push mem
{ "oos 0110 10s0 : i00" , "pushw %0" },
{ "nos 0110 10s0 : i00" , "pushd %0" },
{ "0001 1110:" , "push cs" , 0 } ,
{ "0001 0110:" , "push ss" , 0 } ,
{ "0001 1110:" , "push ds" , 0 } ,
{ "0000 0110:" , "push es" , 0 } ,
{ "0000 1111 : 1010 0000 :" , "push fs" , 0 } ,
{ "0000 1111 : 1010 1000 :" , "push gs" , 0 } ,
{ "oos 0110 0000:" , "pusha" , 0 } ,
{ "nos 0110 0000:" , "pushad" , 0 } ,
{ "oos 1001 1100:" , "pushf" , 0 } ,
{ "nos 1001 1100:" , "pushfd" , 0 } ,
{ "1101 000w : 11 010 grg:" , "rcl %0 , 1" , 0 } ,
{ "1101 000w : mod 010 rm" , "rcl %p %0 , 1" , 0 } ,
{ "1101 001w : 11 010 grg:" , "rcl %0 , cl" , 0 } ,
{ "1101 001w : mod 010 rm" , "rcl %p %0 , cl" , 0 } ,
{ "1100 000w : 11 010 grg :i08" , "rcl %0 , %1" , 0 } ,
{ "1100 000w : mod 010 rm i08" , "rcl %p %0 , %1" , 0 } ,
{ "1101 000w : 11 011 grg:" , "rcr %0 , 1" , 0 } ,
{ "1101 000w : mod 011 rm" , "rcr %p %0 , 1" , 0 } ,
{ "1101 001w : 11 011 grg:" , "rcr %0 , cl" , 0 } ,
{ "1101 001w : mod 011 rm" , "rcr %p %0 , cl" , 0 } ,
{ "1100 000w : 11 011 grg :i08" , "rcr %0 , %1" , 0 } ,
{ "1100 000w : mod 011 rm i08" , "rcr %p %0 , %1" , 0 } ,
{ "1100 0011 :" , "ret" , 0 } ,
{ "1100 0010 : i16" , "ret %0" , 0 } ,
{ "1100 1011 :" , "ret far" , 0 } ,
{ "1100 1010 : i16" , "ret far %0" , 0 } ,
{ "1101 000w : 11 000 grg:" , "rol %0 , 1" , 0 } ,
{ "1101 000w : mod 000 rm" , "rol %p %0 , 1" , 0 } ,
{ "1101 001w : 11 000 grg:" , "rol %0 , cl" , 0 } ,
{ "1101 001w : mod 000 rm" , "rol %p %0 , cl" , 0 } ,
{ "1100 000w : 11 000 grg :i08" , "rol %0 , %1" , 0 } ,
{ "1100 000w : mod 000 rm i08" , "rol %p %0 , %1" , 0 } ,
{ "1101 000w : 11 001 grg:" , "ror %0 , 1" , 0 } ,
{ "1101 000w : mod 001 rm" , "ror %p %0 , 1" , 0 } ,
{ "1101 001w : 11 001 grg:" , "ror %0 , cl" , 0 } ,
{ "1101 001w : mod 001 rm" , "ror %p %0 , cl" , 0 } ,
{ "1100 000w : 11 001 grg :i08" , "ror %0 , %1" , 0 } ,
{ "1100 000w : mod 001 rm i08" , "ror %p %0 , %1" , 0 } ,
{ "1001 1110 :" , "sahf" , 0 } ,
{ "1101 000w : 11 111 grg:" , "sar %0 , 1" , 0 } ,
{ "1101 000w : mod 111 rm" , "sar %p %0 , 1" , 0 } ,
{ "1101 001w : 11 111 grg:" , "sar %0 , cl" , 0 } ,
{ "1101 001w : mod 111 rm" , "sar %p %0 , cl" , 0 } ,
{ "1100 000w : 11 111 grg :i08" , "sar %0 , %1" , 0 } ,
{ "1100 000w : mod 111 rm i08" , "sar %p %0 , %1" , 0 } ,
{ "0001 10dw : 11 grg grg:" , "sbb %1 , %0" , 0 } ,
{ "0001 10dw : mod grg rm" , "sbb %1 , %0" , 0 } ,
{ "1000 00sw : 11 011 grg: i00" , "sbb %0 , %1" , 0 } ,
{ "0001 110w eax : i00" , "sbb %0 , %1" , 0 } ,
{ "1000 00sw : mod 011 rm i00" , "sbb %p %0 , %1" , 0 } ,
{ "1010 1110:" , "%rzscasb" , 0 } ,
{ "oas 1010 1111:" , "%rzscasw" , 0 } ,
{ "nas 1010 1111:" , "%rzscasd" , 0 } ,
{ "0000 1111 : 1001 tttn : 11 000 g08:" , "set%c %0" , 0 } ,
{ "0000 1111 : 1001 tttn : mod 000 rm" , "set%c byte ptr %0" , 0 } ,
{ "1101 000w : 11 100 grg:" , "shl %0 , 1" , 0 } ,
{ "1101 000w : mod 100 rm" , "shl %p %0 , 1" , 0 } ,
{ "1101 001w : 11 100 grg:" , "shl %0 , cl" , 0 } ,
{ "1101 001w : mod 100 rm" , "shl %p %0 , cl" , 0 } ,
{ "1100 000w : 11 100 grg :i08" , "shl %0 , %1" , 0 } ,
{ "1100 000w : mod 100 rm i08" , "shl %p %0 , %1" , 0 } ,
{ "0000 1111 : 1010 0100 : 11 grg grg : i08" , "shld %1 , %0 , %2" , 0 } ,
{ "0000 1111 : 1010 0100 : mod grg rm i08" , "shld %p %1 , %0 , %2" , 0 } ,
{ "0000 1111 : 1010 0101 : 11 grg grg:" , "shld %1 , %0 , cl" , 0 } ,
{ "0000 1111 : 1010 0101 : mod grg rm" , "shld %p %1 , %0 , cl" , 0 } ,
{ "1101 000w : 11 101 grg:" , "shr %0 , 1" , 0 } ,
{ "1101 000w : mod 101 rm" , "shr %p %0 , 1" , 0 } ,
{ "1101 001w : 11 101 grg:" , "shr %0 , cl" , 0 } ,
{ "1101 001w : mod 101 rm" , "shr %p %0 , cl" , 0 } ,
{ "1100 000w : 11 101 grg :i08" , "shr %0 , %1" , 0 } ,
{ "1100 000w : mod 101 rm i08" , "shr %p %0 , %1" , 0 } ,
{ "0000 1111 : 1010 1100 : 11 grg grg : i08" , "shrd %1 , %0 , %2" , 0 } ,
{ "0000 1111 : 1010 1100 : mod grg rm i08" , "shrd %p %1 , %0 , %2" , 0 } ,
{ "0000 1111 : 1010 1101 : 11 grg grg:" , "shrd %1 , %0 , cl" , 0 } ,
{ "0000 1111 : 1010 1101 : mod grg rm" , "shrd %p %1 , %0 , cl" , 0 } ,
{ "1111 1001 :" , "stc" , 0 } ,
{ "1111 1101 :" , "std" , 0 } ,
{ "1111 1011 :" , "sti" , 0 } ,
{ "1010 1010 :" , "%r_stosb" , 0 } ,
{ "oas1010 1011 :" , "%r_stosw" , 0 } ,
{ "nas1010 1011 :" , "%r_stosd" , 0 } ,
{ "0010 10dw : 11 grg grg:" , "sub %1 , %0" , 0 } ,
{ "0010 10dw : mod grg rm" , "sub %p %1 , %0" , 0 } ,
{ "1000 00sw : 11 101 grg: i00" , "sub %0 , %1" , 0 } ,
{ "0010 110w eax : i00" , "sub %0 , %1" , 0 } ,
{ "1000 00sw : mod 101 rm i00" , "sub %p %0 , %1" , 0 } ,
{ "1000 010w : 11 grg grg:" , "test %1 , %0" , 0 } ,
{ "1000 010w : mod grg rm" , "test %p %1 , %0" , 0 } ,
{ "1111 011w : 11 000 grg: i00" , "test %p %0 , %1" , 0 } ,
{ "1010 100w eax: i00" , "test %0 , %1" },
{ "1111 011w : mod 000 rm i00" , "test %p %0 , %1" , 0 } ,
{ "0000 1111 : 0000 1011 :" , "ud2" , 0 } ,
{ "1001 1011 :" , "wait" , 0 } ,
{ "0000 1111 : 1100 000w : 11 grg grg:" , "xadd %1 , %0" , 0 } ,
{ "0000 1111 : 1100 000w : mod grg rm" , "xadd %p %1 , %0" , 0 } ,
{ "1000 011w : 11 grg grg:" , "xchg %1 , %0" , 0 } ,
{ "1000 011w : mod grg rm" , "xchg %p %1 , %0" , 0 } ,
{ "1001 0 eax grg:" , "xchg %0 , %1 " , 0 } ,
{ "1101 0111:" , "xlat" },
{ "0011 00dw : 11 grg grg:" , "xor %1 , %0" , 0 } ,
{ "0011 00dw : mod grg rm" , "xor %p %1 , %0" , 0 } ,
{ "1000 00sw : 11 110 grg: i00 ", "xor %0 , %1" , 0 } ,
{ "0011 010w eax: i00" , "xor %0 , %1" , 0 } ,
{ "1000 00sw : mod 110 rm i00" , "xor %p %0 , %1" , 0 } ,
{ 0 , 0 , 0 }
};
////////////////////////////////////////////////////////////////////
// instructions fpu
static SOPContext pfnOPCFPU[] =
{
{ "11011 001 : 1111 0000:" , "f2xm1" , 0 } ,
{ "11011 001 : 1110 0001:" , "fabs" , 0 } ,
{ "11011 000 : mod 000 rm" , "fadd dword ptr %0" , 0 } ,
{ "11011 100 : mod 000 rm" , "fadd qword ptr %0" , 0 } ,
{ "11011 000 : 11 000 fpu:" , "fadd st(0) , %0" , 0 } ,
{ "11011 100 : 11 000 fpu:" , "fadd %0 , st(0)" , 0 } ,
{ "11011 110 : 11 000 fpu:" , "faddp %0 , st(0)" , 0 } ,
{ "11011 111 : mod 100 rm" , "fbld" , 0 } ,
{ "11011 111 : mod 110 rm" , "fbstp" , 0 } ,
{ "11011 001 : 1110 0000:" , "fchs" , 0 } ,
{ "11011 011 : 1110 0010:" , "fclex" , 0 } ,
{ "11011 010 : 11 000 fpu:" , "fcmovb st(0) , %0" , 0 } ,
{ "11011 010 : 11 001 fpu:" , "fcmove st(0) , %0" , 0 } ,
{ "11011 010 : 11 010 fpu:" , "fcmovbe st(0) , %0" , 0 } ,
{ "11011 010 : 11 011 fpu:" , "fcmovu st(0) , %0" , 0 } ,
{ "11011 011 : 11 000 fpu:" , "fcmovnb st(0) , %0" , 0 } ,
{ "11011 011 : 11 001 fpu:" , "fcmovne st(0) , %0" , 0 } ,
{ "11011 011 : 11 010 fpu:" , "fcmovnbe st(0) , %0" , 0 } ,
{ "11011 011 : 11 011 fpu:" , "fcmovnu st(0) , %0" , 0 } ,
{ "11011 000 : mod 010 rm" , "fcom dword ptr %0" , 0 } ,
{ "11011 100 : mod 010 rm" , "fcom qword ptr %0" , 0 } ,
{ "11011 000 : 11 010 fpu:" , "fcom %0" , 0 } ,
{ "11011 000 : mod 011 rm" , "fcomp dword ptr %0" , 0 } ,
{ "11011 100 : mod 011 rm" , "fcomp qword ptr %0" , 0 } ,
{ "11011 000 : 11 011 fpu:" , "fcomp %0" , 0 } ,
{ "11011 110 : 11 011 001:" , "fcompp" , 0 } ,
{ "11011 011 : 11 110 fpu:" , "fcomi %0" , 0 } ,
{ "11011 111 : 11 110 fpu:" , "fcomip" , 0 } ,
{ "11011 001 : 1111 1111:" , "fcos" , 0 } ,
{ "11011 001 : 1111 0110:" , "fdecstp" , 0 } ,
{ "11011 000 : mod 110 rm" , "fdiv dword ptr %0" , 0 } ,
{ "11011 100 : mod 110 rm" , "fdiv qword ptr %0" , 0 } ,
{ "11011 000 : 11110 fpu:" , "fdiv st(0) , %0" , 0 } ,
{ "11011 100 : 11111 fpu:" , "fdiv %0 , st(0)" , 0 } ,
{ "11011 110 : 1111 1 fpu:" , "fdivp %0 , st(0)" , 0 } ,
{ "11011 000 : mod 111 rm" , "fdivr dword ptr %0" , 0 } ,
{ "11011 100 : mod 111 rm" , "fdivr qword ptr %0" , 0 } ,
{ "11011 000 : 11111 fpu:" , "fdivr st(0) , %0" , 0 } ,
{ "11011 100 : 11110 fpu:" , "fdivr %0 , st(0)" , 0 } ,
{ "11011 110 : 1111 0 fpu:" , "fdivrp %0 , st(0)" , 0 } ,
{ "11011 101 : 1100 0 fpu:" , "ffree %0" , 0 } ,
{ "11011 110 : mod 000 rm" , "fiadd word ptr %0" , 0 } ,
{ "11011 010 : mod 000 rm" , "fiadd dword ptr %0" , 0 } ,
{ "11011 110 : mod 010 rm" , "ficom word ptr %0" , 0 } ,
{ "11011 010 : mod 010 rm" , "ficom dword ptr %0" , 0 } ,
{ "11011 110 : mod 011 rm" , "ficomp word ptr %0" , 0 } ,
{ "11011 010 : mod 011 rm" , "ficomp dword ptr %0" , 0 } ,
{ "11011 110 : mod 110 rm" , "fidiv word ptr %0" , 0 } ,
{ "11011 010 : mod 110 rm" , "fidiv dword ptr %0" , 0 } ,
{ "11011 110 : mod 111 rm" , "fidivr word ptr %0" , 0 } ,
{ "11011 010 : mod 111 rm" , "fidivr dword ptr %0" , 0 } ,
{ "11011 111 : mod 000 rm" , "fild word ptr %0 " , 0 } ,
{ "11011 011 : mod 000 rm" , "fild dword ptr %0 " , 0 } ,
{ "11011 111 : mod 101 rm" , "fild qword ptr %0 " , 0 } ,
{ "11011 110 : mod 001 rm" , "fimul word ptr %0" , 0 } ,
{ "11011 010 : mod 001 rm" , "fimul dword ptr %0" , 0 } ,
{ "11011 001 : 1111 0111:" , "fincstp" , 0 } ,
{ "10011011 : 11011011 : 11100011:" , "finit" , 0 } ,
{ "11011011 : 11100011:" , "fninit" , 0 } ,
{ "11011 111 : mod 010 rm" , "fist word ptr %0" , 0 } ,
{ "11011 011 : mod 010 rm" , "fist dword ptr %0" , 0 } ,
{ "11011 111 : mod 011 rm" , "fistp word ptr %0" , 0 } ,
{ "11011 011 : mod 011 rm" , "fistp dword ptr %0" , 0 } ,
{ "11011 111 : mod 111 rm" , "fistp qword ptr %0" , 0 } ,
{ "11011 110 : mod 100 rm" , "fisub word ptr %0" , 0 } ,
{ "11011 010 : mod 100 rm" , "fisub dword ptr %0" , 0 } ,
{ "11011 110 : mod 101 rm" , "fisubr word ptr %0" , 0 } ,
{ "11011 010 : mod 101 rm" , "fisubr dword ptr %0" , 0 } ,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -