title: Why does push EBX result in pop ESI
body: <p>I picked up the book "Practical reverse engineering" and i have the following example on page 14 (x86 assembly):</p>
  
  <pre><code>mov eax, 0AAAAAAAh
  mov ebx, 0BBBBBBBh
  push eax
  push ebx
  pop esi
  pop edi
  </code></pre>
  
  <p>Now, I push eax and ebx on to the stack, but i pop esi and edi of the stack. Why is that? I thought I would push and pop the same registers.</p>