當我在Disassembly中查看一些c代碼時,我注意到了一些奇怪的前瞻性陳述。這些語句恰好在函數調用之前發生。所以我刪除了所有代碼我的程序剛剛離開這樣一個空的主要功能 -這些彙編語言語句的含義是什麼?
我有這樣一個空的主要功能 -
int _tmain(int argc, _TCHAR* argv[])
{
return 0;
}
然而,當我看着拆卸問題的彙編語句仍當下。那麼是否有人知道這些陳述的目的?
int _tmain(int argc, _TCHAR* argv[])
{
00411350 push ebp
00411351 mov ebp,esp
00411353 sub esp,0C0h
00411359 push ebx
0041135A push esi
0041135B push edi
0041135C lea edi,[ebp-0C0h]
00411362 mov ecx,30h
00411367 mov eax,0CCCCCCCCh
0041136C rep stos dword ptr es:[edi]
return 0;
0041136E xor eax,eax
}
有問題的語句是
00411362 mov ecx,30h
00411367 mov eax,0CCCCCCCCh
0041136C rep stos dword ptr es:[edi]
可能重複的[爲什麼我們爲每個變量分配12個字節?](http://stackoverflow.com/questions/8033353/why-do-we-allocate-12-bytes-for-each-variable) – 2012-01-12 00:58:25