title: What is the purpose of a stack? Why do we need it?
body: <p>So I am learning MSIL right now to learn to debug my C# .NET applications.</p>
  
  <p>I've always wondered: <strong>what is the purpose of the stack?</strong> </p>
  
  <p><em>Just to put my question in context:<br/>
  Why is there a transfer from memory to stack or "loading?" 
  On the other hand, why is there a transfer from stack to memory or "storing"?
  <strong>Why not just have them all placed in the memory?</em></strong></p>
  
  <ul>
  <li>Is it because it's faster?</li>
  <li>Is it because it's RAM based?</li>
  <li>For efficiency?</li>
  </ul>
  
  <p>I'm trying to grasp this to help me understand <a href="http://en.wikipedia.org/wiki/Common_Intermediate_Language" rel="noreferrer">CIL</a> codes much more deeply.</p>