首页
社区
课程
招聘
[求助]一样的代码为什么编译生成的汇编不同?
发表于: 2013-2-4 09:56 5440

[求助]一样的代码为什么编译生成的汇编不同?

2013-2-4 09:56
5440
lpDosHead = (PIMAGE_DOS_HEADER)lpMapFile;
lpNTHead = (PIMAGE_NT_HEADERS32)((byte *)lpDosHead+lpDosHead->e_lfanew);
lpOptionHead =        (PIMAGE_OPTIONAL_HEADER32)((byte *)lpNTHead+
                sizeof (DWORD)+
                sizeof (IMAGE_FILE_HEADER));
就这几句代码
其中两次用到了这三行代码
结果两次编译生成的代码竟然不同,很奇怪
这是vc++6.0的什么隐藏特性吗?
关键是生成的还是错的

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 2993
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
会不会536那里的ecx跟eax之间的算数关系可以在编译的时候计算出来,所以被编译器给优化了。另外楼主用红色挡住了好多,有一些看不清,再加上我也是新手,觉得上面这种可能性比较大。
2013-2-4 11:29
0
雪    币: 3380
活跃值: (1373)
能力值: ( LV4,RANK:40 )
在线值:
发帖
回帖
粉丝
3
话说VC自带的汇编窗口里显示的汇编代码,我也一直有着疑惑问题,所以每当调试,我都脱离VC。用OD或者IDA看看、、、
2013-2-4 12:05
0
雪    币: 40
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
你这是VC的环境啊,难怪了,
2013-2-4 13:01
0
雪    币: 275
活跃值: (51)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
后来还是一样的代码 但是 执行就对了 我也不知道为什么
改了很多次都不行,我甚至每一层都加了括号,后来它有正常了,
而这个函数所有的代码我都没改动
2013-2-4 13:41
0
雪    币: 92
活跃值: (209)
能力值: ( LV6,RANK:95 )
在线值:
发帖
回帖
粉丝
6
优化的结果吧
2013-2-4 19:25
0
游客
登录 | 注册 方可回帖
返回
//