Terminology:
   Heap: Memory allocated and freed in random order, ie malloc() and free()
   Stack: A memory area that grows/shrinks in one direction.
   The Stack: The call/return stack (stack pointer in ESP, TOS in EAX)
