为什么main函数和add函数结束都有ret指令?
call指令和ret指令一般配套使用
add函数结束时的ret指令出栈的是什么东西?(我指的是单独的add函数而不是main函数调用的add函数(虽然这两个是一个函数))
int main()
{
011B1410 55 push ebp
011B1411 8B EC mov ebp,esp
011B1413 81 EC E4 00 00 00 sub esp,0E4h
011B1419 53 push ebx
011B141A 56 push esi
011B141B 57 push edi
011B141C 8D BD 1C FF FF FF lea edi,[ebp+FFFFFF1Ch]
011B1422 B9 39 00 00 00 mov ecx,39h
011B1427 B8 CC CC CC CC mov eax,0CCCCCCCCh
011B142C F3 AB rep stos dword ptr es:[edi]
int a = 2;
011B142E C7 45 F8 02 00 00 00 mov dword ptr [ebp-8],2
int b = 3;
011B1435 C7 45 EC 03 00 00 00 mov dword ptr [ebp-14h],3
int ret = 0;
011B143C C7 45 E0 00 00 00 00 mov dword ptr [ebp-20h],0
ret = Add(a, b);
011B1443 8B 45 EC mov eax,dword ptr [ebp-14h]
011B1446 50 push eax
011B1447 8B 4D F8 mov ecx,dword ptr [ebp-8]
011B144A 51 push ecx
011B144B E8 91 FC FF FF call 011B10E1
011B1450 83 C4 08 add esp,8
011B1453 89 45 E0 mov dword ptr [ebp-20h],eax
return 0;
011B1456 33 C0 xor eax,eax
}
011B1458 5F pop edi
011B1459 5E pop esi
011B145A 5B pop ebx
011B145B 81 C4 E4 00 00 00 add esp,0E4h
011B1461 3B EC cmp ebp,esp
011B1463 E8 D3 FC FF FF call 011B113B
011B1468 8B E5 mov esp,ebp
011B146A 5D pop ebp
011B146B C3 ret