-
-
[分享]除以100的优化代码
-
发表于:
2011-2-12 00:34
4822
-
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
int a,b;
cin >>a;
b = a/100;
cout <<endl <<b <<endl;
return 0;
}
今天分析一个软件发现了这个
b = a/100;
这行代码在VC6 Release模式下编译优化成下面的代码
00401092 |. 8B4C24 08 mov ecx, dword ptr [esp+8] ; ecx <- a
00401096 |. B8 1F85EB51 mov eax, 51EB851F
0040109B |. F7E9 imul ecx
0040109D |. C1FA 05 sar edx, 5
004010A0 |. 8BCA mov ecx, edx
004010A2 |. 6A 0A push 0A
004010A4 |. C1E9 1F shr ecx, 1F
004010A7 |. 03D1 add edx, ecx ;edx 是除法运算后的结果
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!