| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 515 人关注过本帖
标题:一个BYTE引发的疑问
取消只看楼主 加入收藏
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
结帖率:100%
收藏
 问题点数:0 回复次数:2 
一个BYTE引发的疑问
蛋疼  发帖砸不成功呢  不允许上传附件为0....  俺就传了几张图片呀

------------------------------------------------------------------------------
首先编写代码如下
图片附件: 游客没有浏览图片的权限,请 登录注册

程序挂掉,运行的结果好像也不是我预期的值--于是OD载入
图片附件: 游客没有浏览图片的权限,请 登录注册

发现多了一个push 0,于是单步走
图片附件: 游客没有浏览图片的权限,请 登录注册

在走发现神奇了,栈好像不是模4地址了
图片附件: 游客没有浏览图片的权限,请 登录注册

于是感觉这不科学啊
图片附件: 游客没有浏览图片的权限,请 登录注册

VC6.0 编写C代码如下
图片附件: 游客没有浏览图片的权限,请 登录注册

反汇编查看
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册


于是感觉ml的处理方式好像不科学啊
搜索更多相关主题的帖子: 疑问 
2012-11-04 02:49
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
收藏
得分:0 
额 有人看电影把网速全部占用了  叫他限速了下  于是上传成功了
---------------------------------------------------------------------

于是小小的修改了一下代码把SBYTE全部修改为BYTE
图片附件: 游客没有浏览图片的权限,请 登录注册

程序好像没有挂了
于是在OD载入
图片附件: 游客没有浏览图片的权限,请 登录注册

发现又多了一个push 一共3个push0
于是猜测,是否是因为BYTE 才多产生了一个push 0
于是在小小的把BYTE 全部修改为SBYTE
图片附件: 游客没有浏览图片的权限,请 登录注册

好像程序又没有挂
于是在OD载入
图片附件: 游客没有浏览图片的权限,请 登录注册

于是发现好像没有产生多余的push 0了


于是疑问产生了  BYTE类型压参时为何要push 0一下呢
???????????????????????????????????????????????
期待高人的解答





我的头像就是我的女神 可惜我的女神已经死了 所以我的心也死了
2012-11-04 02:58
bingghost
Rank: 2
等 级:论坛游民
帖 子:70
专家分:85
注 册:2012-1-4
收藏
得分:0 
以下是引用zklhp在2012-11-4 10:26:47的发言:

可能是bug罢 API压栈都是压的32位数 所以正常情况下没有这个问题 可能宏在压非32位的时候有bug
在zk大大的指点下  俺于是测试 有无宏的情况
图片附件: 游客没有浏览图片的权限,请 登录注册

图片附件: 游客没有浏览图片的权限,请 登录注册

咿呀好像还真不一样啊  难道真的是有无宏的情况么?
于是在进行测试
图片附件: 游客没有浏览图片的权限,请 登录注册

于是发现不是宏引起的  
调用约定一样 参数类型一样 咋生成的代码就不一样呢?
突然恍然大悟   printf是变长参数
于是  把_test也修改成变长参数   于是 一样了
图片附件: 游客没有浏览图片的权限,请 登录注册

我的头像就是我的女神 可惜我的女神已经死了 所以我的心也死了
2012-11-04 12:10
快速回复:一个BYTE引发的疑问
数据加载中...
 
   



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

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