title: How does the lea instruction interact with esp?
body: <p>I read that for example "lea eax, [ebp - 120]" essentially means </p>
  
  <pre><code>mov    eax, ebp
  sub     eax, 120
  </code></pre>
  
  <p>Given the example that the esp is at ebp-200, then later in the function</p>
  
  <pre><code>lea eax, [ebp - 120]
  push eax
  call xyz
  </code></pre>
  
  <p>would this mean that the value at ebp-120 is loaded into the eax register, then this 4 byte vaule is pushed onto the stack?  Or does it mean that the esp is decremented further by 120, thereby creating a buffer from ebp-200 to ebp-320, with esp now at ebp-320?</p>