关于win32汇编的问题
刚学win32汇编 有一些问题 一直想不清楚求大神指点迷津以下是我的代码这个是我的C++代码
void a()
{
int a1=100;
int a2=200;
}
下面是反汇编的代码
13:void a()
14:{
01163310push ebp
01163311mov ebp,esp
01163313sub esp,0D8h
01163319push ebx
0116331Apush esi
0116331Bpush edi
0116331Clea edi,
01163322mov ecx,36h
01163327mov eax,0CCCCCCCCh
0116332Crep stos dword ptr es:
15: int a1=100;
0116332Emov dword ptr ,64h ;在这里想问的是,把64h放到 中 这个默认的短地址是不是ds?
16: int a2=200; ;如果是ds的话那怎么怎么实现局部变量?局部变量不应该是随着
01163335mov dword ptr ,0C8h ;函数的结束而死了吗? 如果不是压入栈中就没有随着函数的结束而丢
17:} ;失啊很是纠结
0116333Cpop edi
0116333Dpop esi
0116333Epop ebx
0116333Fmov esp,ebp
01163341pop ebp
01163342ret
http://blog.csdn.net/njnu_mjn/article/details/7849522
看看这篇日志,你可能有所领悟~~~~~~~~~
函数中的局部变量在函数返回时, 要被销毁. 但在实际的编译运行过程中, 编译器进行了优化, 执行过程并不按照标准步骤进行.~~~~~~~~ 楼上高手正解,楼主可参照。 zer0 发表于 2013-8-1 12:31 static/image/common/back.gif
http://blog.csdn.net/njnu_mjn/article/details/7849522
看看这篇日志,你可能有所领悟~~~~~~~~~
函数中 ...
谢谢{:1_1:} 福禄娃娃 发表于 2013-8-1 12:37 static/image/common/back.gif
楼上高手正解,楼主可参照。
谢谢:lol:{:1_1:} zer0 发表于 2013-8-1 12:31 static/image/common/back.gif
http://blog.csdn.net/njnu_mjn/article/details/7849522
看看这篇日志,你可能有所领悟~~~~~~~~~
函数中 ...
解决问题了 ,谢谢你啊 琢磨了好久了 嘿嘿{:1_1:} x87648510 发表于 2013-8-1 13:24 static/image/common/back.gif
解决问题了 ,谢谢你啊 琢磨了好久了 嘿嘿
好的~~~~~请及时采纳谢谢 编译的时候把,VC优化关了,编译出来的就按照你想的那么走了, ssyss501 发表于 2013-8-2 09:52 static/image/common/back.gif
编译的时候把,VC优化关了,编译出来的就按照你想的那么走了,
嗯 谢谢也发现这个问题现在的 编译器都智能了自动优化{:1_1:}
页:
[1]