-
-
[求助]请教达人关于流水线优化的问题
-
发表于:
2008-10-29 11:58
2804
-
我的一个watcom编译器编译的程序,在反汇编之后得到如下结果:
cseg_01:00003062 mov esi, eax
cseg_01:00003064 mov ecx, edx
cseg_01:00003066 lea eax, [esp+28h+var_1C]
cseg_01:0000306A mov edx, 0Eh
cseg_01:0000306F call sigemptyset_
cseg_01:0000306F
cseg_01:00003074 lea eax, [esp+28h+var_1C]
cseg_01:00003078 mov ebx, 3041h ; <suspicious>
cseg_01:0000307D call sigaddset_
cseg_01:0000307D
cseg_01:00003082 mov eax, [esp+28h+var_1C]
cseg_01:00003086 xor edx, edx
两个原型是:int sigemptyset_(sigset_t *set);
int sigaddset(sigset_t *set,int signum);
这里已经知道sigemptyset的参数来自lea eax, [esp+28h+var_1C]
sigaddset的参数来自mov edx, 0Eh和lea eax, [esp+28h+var_1C]
函数参数是寄存器方式传递,传递顺序为eax,edx,ebx,ecx
为什么我的ida反汇编结果是这样的?顺序不是以下这样:
lea eax, [esp+28h+var_1C]
call sigemptyset_
mov edx, 0Eh
lea eax, [esp+28h+var_1C]
call sigaddset_
mov ebx, 3041h ;
而是ida反汇编的那样呢?
cpu流水线优化在ida反汇编结果中怎样识别出顺序来?
[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法