Где находится ESP после инструкции по вызову? - PullRequest
1 голос
/ 10 октября 2019

Я начал изучать реверс-инжиниринг, и когда я читаю операции со стеком и вызов функций, возникает проблема, которая меня смущает. -Какой адрес 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 делает его неправильным. Помоги мне понять это.

...