What does ebp and esp in a disassembly code mean?

2019-09-21 14:46发布

问题:

Below posted is my code. Help me out in understanding what the below code means:

   push    ebp
   mov     ebp, esp
   sub     esp, 230h

回答1:

It is a function prologue.

Pushes the old base pointer onto the stack, so it can be restored later:

   push    ebp

Assigns the value of stack pointer into base pointer, then a new stack frame will be created on top of the old stack frame:

   mov     ebp, esp

Moves the stack pointer further by decreasing or increasing its value (depending on whether the stack grows down or up):

   sub     esp, 230h

Here, the230h immediate value is the number of bytes reserved on the stack for local use in the function.

In a similar way, the function epilogue reverses the actions of the prologue and returns control to the calling function.

Check this related SO question: Function Prologue and Epilogue in C