菜鸟请教一个简单汇编问题
源程序:
int foo(int m,int n)
{
int i =0;
int j =0;
return 0;
}
反汇编:
6: int foo(int m,int n)
7: {
00401020
push ebp
00401021 mov ebp,esp
00401023 sub esp,48h
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]
8: int i =0;
00401038 mov dword ptr [ebp-4],0
9: int j =0;
0040103F mov dword ptr [ebp-8],0
10: return 0;
00401046 xor eax,eax
11: }
疑惑:
foo函数在执行 int i=0;之前有
00401026 push ebx
00401027 push esi
00401028 push edi
操作。
那么 ptr[dbp-4]的地址保存的内容不应该是ebx ???为什么变成了i 的地址?