首页
社区
课程
招聘
[求助]关于switch语句反汇编
发表于: 2012-9-14 21:45 4540

[求助]关于switch语句反汇编

2012-9-14 21:45
4540
反汇编了一下switch语句发现
switch(flag)
00F04177    8B45 F8                mov     eax, dword ptr [ebp-8]
00F0417A    8985 30FFFFFF     mov     dword ptr [ebp-D0], eax
00F04180    83BD 30FFFFFF 0>cmp     dword ptr [ebp-D0], 1
其中将flag值取到eax,在把eax值赋到栈中。这一步我感觉是多余的呀。
完全可以直接执行cmp [ebp-8],1;
这样不可以提高效率吗?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
那個式compiler依照你的code去生出來,所以很正常。
2012-9-14 22:30
0
雪    币: 3572
活跃值: (760)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
flag放到switch中 又申请了一个临时变量
2012-9-14 22:37
0
雪    币: 988
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
flag是我已经定义好的变量,不应该再申请一块空间来的呀。如果不这样的话,应该怎样去写这个代码?
2012-9-14 22:57
0
雪    币: 988
活跃值: (74)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
能否具体说一下 switch的运行机理。这样不是效率降低了吗?
2012-9-14 22:59
0
雪    币: 416
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
那個是根你的Compiler的優化程度有關系,想要把他變成效率高的,這樣會compiler複雜度會變更高,通常都是需要加上優化的選項才會變成比較高效率的。
2012-9-14 23:13
0
游客
登录 | 注册 方可回帖
返回
//