文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>c++反汇编代码分析--循环结构

c++反汇编代码分析--循环结构

时间:2010-09-11  来源:baoluowanxiang

在此主要讨论或者验证三点:     1、循环结构的反汇编代码分析     2、函数中,局部变量的保存位置     3、方法的返回值保存位置验证     一个没有找到答案的疑问:     00401029   lea         edi,[ebp-48h] 0040102C   mov         ecx,12h 00401031   mov         eax,0CCCCCCCCh ;这段代码是在栈中开辟一个48字节大小的区域来存放局部变量,但是如果函数内没有局部变量,则是lea         edi,[ebp-40h]一个局部变量,则是lea         edi,[ebp-44h]两个局部变量,则是lea         edi,[ebp-48h]也就是没有局部变量时开辟的40个字节,我用F11追踪过,单步调试时,这一部分区域并没有用到,这一区域的作用是什么?     代码如下:     1int sum()     2{     3 int subResult=0;     4 for (int i=0;i<3;i++)     5 {     6 subResult+=1;     7 }     8 return subResult;     9}     10     11void main()     12{     13 int result = sum();     14    printf("%\d\n",result);     15}     由于方法的调用已经在上一篇中说过,这里直接分析内部有循环结构的sum()方法     反汇编代码及分析:     5: int sum()     6: {     00401020 push ebp     ;ESP = 0012FEF0 EBP = 0012FF48     00401021   mov         ebp,esp     ;ESP = 0012FEF0 EBP = 0012FEF0     00401023   sub         esp,48h     ;ESP = 0012FEA8 EBP = 0012FEF0     00401026 push ebx     00401027 push esi     00401028 push edi     00401029   lea         edi,[ebp-48h] 0040102C   mov         ecx,12h 00401031   mov         eax,0CCCCCCCCh     00401036 rep stos dword ptr [edi]     7: int subResult=0;     00401038   mov         dword ptr [ebp-4],0
TAG标签:

本文转自 ☆★ 包罗万象网 ★☆ - http://www.baoluowanxiang.com 转载请注明出处,侵权必究!
原文链接:http://www.baoluowanxiang.com/a/program/c/2010/0406/238.html
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载