| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 746 人关注过本帖
标题:反汇编了一个console版 windows程序时发现的一个小问题
只看楼主 加入收藏
kamuli
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-8
收藏
 问题点数:0 回复次数:4 
反汇编了一个console版 windows程序时发现的一个小问题
.text:00401010 main            proc near               ; CODE XREF: _mainj
.text:00401010
.text:00401010 var_40          = byte ptr -40h
.text:00401010
.text:00401010                 push    ebp
.text:00401011                 mov     ebp, esp
.text:00401013                 sub     esp, 40h
.text:00401016                 push    ebx
.text:00401017                 push    esi
.text:00401018                 push    edi
.text:00401019                 lea     edi, [ebp+var_40]
.text:0040101C                 mov     ecx, 10h
.text:00401021                 mov     eax, 0CCCCCCCCh
.text:00401026                 rep stosd
.text:00401028                 xor     eax, eax
.text:0040102A                 pop     edi
.text:0040102B                 pop     esi
.text:0040102C                 pop     ebx
.text:0040102D                 mov     esp, ebp
.text:0040102F                 pop     ebp
.text:00401030                 retn
.text:00401030 main            endp


VC6.0 编译的,里面就是一个 main空函数
其中这句  .text:00401013                 sub     esp, 40h    中的   40h 空间干嘛用去了??随便生产一个console程序都有这么个空间,一直不明白
搜索更多相关主题的帖子: edi windows 
2011-08-07 20:18
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
Debug模式的罢 Release的呢 加优化参数呢?
2011-08-07 22:23
kamuli
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-8
收藏
得分:0 

嗯,是debug模式,默认编译选项,
再继续追问
2011-08-08 11:10
kamuli
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2008-12-8
收藏
得分:0 

按照大大的提醒,编译了一个Release版本的  console,貌似这个 40h的空间就没出现了,猜是跟 编译选项有关了,

那能不能说说Debug版多出这个40h来做什么??里面初始化还都是 0xCCCCCCCCh  就是 CCh指令,这是断点丫,
2011-08-08 11:27
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
那能不能说说Debug版多出这个40h来做什么??

不知道。。

里面初始化还都是 0xCCCCCCCCh  就是 CCh指令,这是断点丫

是为了能在执行堆栈中指令时报错 就是cc int 3

这个是VC DEBUG模式的特征 呵呵
2011-08-08 22:13
快速回复:反汇编了一个console版 windows程序时发现的一个小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022884 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved