一个简单函数问题
时间:2011-06-24
来源:互联网
如下代码
98: int set(int m)
99: {
00401330 push ebp
00401331 mov ebp,esp
00401333 sub esp,44h
00401336 push ebx
00401337 push esi
00401338 push edi
00401339 lea edi,[ebp-44h]
0040133C mov ecx,11h
00401341 mov eax,0CCCCCCCCh
00401346 rep stos dword ptr [edi]
100: //int m=1;
101: int n = m++ + m++;
00401348 mov eax,dword ptr [ebp+8]
0040134B add eax,dword ptr [ebp+8]
0040134E mov dword ptr [ebp-4],eax
00401351 mov ecx,dword ptr [ebp+8]
00401354 add ecx,1
00401357 mov dword ptr [ebp+8],ecx
0040135A mov edx,dword ptr [ebp+8]
0040135D add edx,1
00401360 mov dword ptr [ebp+8],edx
102: return n;
00401363 mov eax,dword ptr [ebp-4]
103: }
在上面代码中 [ebp-4] 是m的值 传入的参数
如下
00401386 push ebx
00401387 push esi
00401388 push edi
00401389 lea edi,[ebp-44h]
0040138C mov ecx,11h
00401391 mov eax,0CCCCCCCCh
00401396 rep stos dword ptr [edi]
106: //char chTest1[255]={"myhelloworld"};
107: //char chTest2[255]={"wo"};
108: //strstr(chTest1,chTest2);
109: int res =set(1);
00401398 push 1 //传入参数
[ebp+8] 是n的值,,我很纠结 什么时候 把N 放在这个位置了实在没找到,,,,我是菜鸟,,请各位大神,帮忙
98: int set(int m)
99: {
00401330 push ebp
00401331 mov ebp,esp
00401333 sub esp,44h
00401336 push ebx
00401337 push esi
00401338 push edi
00401339 lea edi,[ebp-44h]
0040133C mov ecx,11h
00401341 mov eax,0CCCCCCCCh
00401346 rep stos dword ptr [edi]
100: //int m=1;
101: int n = m++ + m++;
00401348 mov eax,dword ptr [ebp+8]
0040134B add eax,dword ptr [ebp+8]
0040134E mov dword ptr [ebp-4],eax
00401351 mov ecx,dword ptr [ebp+8]
00401354 add ecx,1
00401357 mov dword ptr [ebp+8],ecx
0040135A mov edx,dword ptr [ebp+8]
0040135D add edx,1
00401360 mov dword ptr [ebp+8],edx
102: return n;
00401363 mov eax,dword ptr [ebp-4]
103: }
在上面代码中 [ebp-4] 是m的值 传入的参数
如下
00401386 push ebx
00401387 push esi
00401388 push edi
00401389 lea edi,[ebp-44h]
0040138C mov ecx,11h
00401391 mov eax,0CCCCCCCCh
00401396 rep stos dword ptr [edi]
106: //char chTest1[255]={"myhelloworld"};
107: //char chTest2[255]={"wo"};
108: //strstr(chTest1,chTest2);
109: int res =set(1);
00401398 push 1 //传入参数
[ebp+8] 是n的值,,我很纠结 什么时候 把N 放在这个位置了实在没找到,,,,我是菜鸟,,请各位大神,帮忙
作者: xuexi1028 发布时间: 2011-06-24
int n = m++ + m++;
[ebp-4] 为n,局部变量;
[ebp+8] 为m,输入参数。
[ebp-4] 为n,局部变量;
[ebp+8] 为m,输入参数。
作者: G_Spider 发布时间: 2011-06-24
E 搞错了LS 的说的对 ,,但是能解释下原因吗 有显式的进栈了吗
作者: xuexi1028 发布时间: 2011-06-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28