title: Why does x86 architecture use two stack registers (esp ; ebp)?
body: <p>My question is simple, Why do x86 architecture use two stack registers (<code>esp ; ebp</code>)?</p>
  
  <p>The length of stack frame has been determined during compile time, then I think we can just use one register (for example <code>esp</code>) to access the stack, and maintain the base address which used to be in the <code>ebp</code> register on the stack (or in other memory regions, but that would incur more performance penalty) </p>
  
  <p>Is it possible? </p>