Я начал изучать реверс-инжиниринг, и когда я читаю операции со стеком и вызов функций, возникает проблема, которая меня смущает. -Какой адрес ESP после инструкций "pop ebp" и "retn" ??
C
int __cdecl addme(short a, short b)
{
return a+b;
}
Assembly
01: push ebp
02: mov ebp , esp
03:...
04:movsx eax ,word ptr [ebp+8]
05:movsx ecx ,word ptr [ebp+0Ch]
06:add eax ,ecx
07:...
08:mov esp , ebp
09:pop ebp
10:retn
Как я, espна шаге 08 установлено значение ebp, поэтому адрес ESP находится сразу после того, как первый адрес входит в стек. Но шаг 09 делает его неправильным. Помоги мне понять это.