Is the Frame Pointer only for Debugging?
Learning x86 assembly and the frame pointer is blowing my mind a little. I learned from this [SO question][1] that EBP makes life awesome for debugging.  That's great, but I was curious, "What else is EBP used for?"  Looking at the [call stack][2] Wikipedia article, EBP is necessary for dynamic stack allocation.

As I've always been under the assumption that dynamic allocation goes on the heap. So, why would I want to use dynamic stack allocation - why isn't the heap good enough?  And, how is EBP useful for this?

  [1]: http://stackoverflow.com/questions/579262/what-is-the-purpose-of-the-frame-pointer
  [2]: http://en.wikipedia.org/wiki/Call_stack#The_stack_and_frame_pointers
Is the Frame Pointer only for Debugging?
===

Learning x86 assembly and the frame pointer is blowing my mind a little. I learned from this [SO question][1] that EBP makes life awesome for debugging.  That's great, but I was curious, "What else is EBP used for?"  Looking at the [call stack][2] Wikipedia article, EBP is necessary for dynamic stack allocation.

As I've always been under the assumption that dynamic allocation goes on the heap. So, why would I want to use dynamic stack allocation - why isn't the heap good enough?  And, how is EBP useful for this?

  [1]: http://stackoverflow.com/questions/579262/what-is-the-purpose-of-the-frame-pointer
  [2]: http://en.wikipedia.org/wiki/Call_stack#The_stack_and_frame_pointers