-
-
[旧帖]
[求助]Register 编号问题
0.00雪花
-
发表于:
2008-7-1 15:21
9349
-
[旧帖] [求助]Register 编号问题
0.00雪花
最近在自己程序里去读一个Method的machine code,然后想把各个指令转化为Asm的指令。遇到一个问题。就是咋去判断,mov reg32,reg32中的reg32是EAX 还是EBX.
使用现有的工具去看下面的代码发现。
_asm
{
push ebp
004136FD push ebp
mov ebp,esp
004136FE mov ebp,esp
mov eax,esi
00413700 mov eax,esi
mov ebx,1
00413702 mov ebx,1
mov eax,ebx
00413707 mov eax,ebx
mov ecx,eax
00413709 mov ecx,eax
mov edx,ecx
0041370B mov edx,ecx
pop ebp
0041370D pop ebp
}
第一条指令,可以通过指令编号知道是:0x55
第二条:Mov reg32,reg32;的编号是:0x8b,而ebp,esp是0xec
... mov eax,esi 是0x8b,...0xc6
...mov eax,ebx是0x8b,...0xc3
...mov ecx,eax是0x8b,...0xc8
...mov edx,ecx 是0x8b,...0xd1
根据猜测红色字的应该是两个寄存器编号的组合,就是不晓得对不对;也没找到什么资料。所以就上来请教各位朋友,希望能帮忙解答解答。最好能给个比较具体的答案。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!