首页
社区
课程
招聘
[求助]请教达人关于流水线优化的问题
发表于: 2008-10-29 11:58 2803

[求助]请教达人关于流水线优化的问题

2008-10-29 11:58
2803
我的一个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虚拟机自动化脱壳的方法

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 2110
活跃值: (21)
能力值: (RANK:260 )
在线值:
发帖
回帖
粉丝
2
目前没办法。

因为流水线的东西,不属于体系结构的范畴,而是具体硬件实现的范畴。

程序员是面向体系结构(寄存器定义,指令集定义和寻址方式定义)的,无法解决流水,并发,多发射,乱序的问题。
2008-10-29 12:14
0
游客
登录 | 注册 方可回帖
返回
//