-
result love(boy, girl)if( boy.有乙個房間()和男孩有一輛車();
return girl.結婚(男孩);
if( girl.願意等待()。
while(!(boy.> 100,000 和女孩感情> 8)。
for( day=1; day <=365;day++)if( 天 == 情人節 )
if( rose ))。
girl.感情++;
elsegirl.感情++;
if( day == girl.生日)。
if( rose ))。
girl.感情++;
elsegirl.感情++;
boy.不顧一切地賺錢();
if( boy.有乙個房間()和男孩有一輛車();
return girl.結婚(男孩);
年齡++; girl.感情++;
return another_boy);
-
在 C++ 中執行函式呼叫有六個步驟:
1、引數轉移:堆疊函式引數:mov eax, dword ptr [n]; n 是引數變數)。
2.操作:將幀指標按入堆疊:推ebp; 使幀指標等於堆疊指標:
mov ebp,esp;要自減去堆疊指標,生成的記憶體位址應(足以)儲存被呼叫函式的本地狀態:sub esp, 0cch。
3.在儲存狀態下傳入:推送ebx; 儲存 EBX 暫存器的值; push esi ;儲存 ESI 暫存器的值; push edi ;儲存 EDI 暫存器的值。
4.載入EDI:LEA EDI,[EBP-0CCH]; 0cch 是當前活動記錄的大小。
5.恢復傳入的儲存狀態:00411417彈出edi; 00411418 pop esi;向上移動 POP EBX 堆疊指標以恢復空間; add esp,0cch。
6. 函式返回可用空間:使堆疊指標等於幀指標:mov esp, ebp; 從堆疊中彈出舊幀指標:pop ebp; 返回:ret。