函数栈不平衡
Main函数中定义了一个变量, 四字节的变量 str
按照道理[ebp-4]保存的就是这个str, 结果 反汇编后,[ebp-8]保存了str!!!!!
[ebp-4]却木有保存,是怎么回事呢???
看反汇编吧:
int _tmain(int argc, _TCHAR* argv[]){00A614D0 push ebp 00A614D1 mov ebp,esp 00A614D3 sub esp,0CCh 00A614D9 push ebx 00A614DA push esi 00A614DB push edi 00A614DC lea edi,[ebp-0CCh] 00A614E2 mov ecx,33h 00A614E7 mov eax,0CCCCCCCCh 00A614EC rep stos dword ptr es:[edi] char const* const str="xx";00A614EE mov dword ptr [str],offset string "xx" (0A66800h) std::cout<<str;00A614F5 mov eax,dword ptr [str] 00A614F8 push eax 00A614F9 mov ecx,dword ptr [__imp_std::cout (0A69310h)] 00A614FF push ecx 00A61500 call std::operator<<<std::char_traits<char> > (0A61159h) 00A61505 add esp,8 return 0;00A61508 xor eax,eax