title: Assembly: Stack vs Heap?
body: <p>In x86 assembly, is <code>esp</code> the stack pointer while <code>ebp</code> is the heap pointer? And why do we have two data structures instead of just one?</p>
  
  <p>And what do <code>esi</code>/<code>edi</code> represent?</p>