title: Why do we need stack cleanup code and how does it work?(In assembly language)
body: <p>Stack is a data structure that follows the LIFO rule. In assembly language, when we are calling a function we need to push the arguments onto the stack using "push" instruction. But why do we need stack cleanup code to remove the arguments? Most stack cleanup code looks like </p>
  
  <pre><code>add esp N
  </code></pre>
  
  <p>How does that remove the arguments from the stack?</p>