title: explanation about push ebp and pop ebp instruction in assembly
body: <p>i used stack in assembly but i didn't got idea about push ebp  and pop ebp.    </p>
  
  <pre><code>.intel_syntax noprefix
  
  .include "console.i"
  
  .text
  
  askl:   .asciz  "Enter length: "
  askb:   .asciz  "Enter breadth: "
  ans:    .asciz  "Perimeter = "
  
  _entry:
  
      push    ebp     # establishing stack-frame
      mov ebp, esp
      sub esp, 12
  
      Prompt  askl
      GetInt  [ebp-4]     # length
      Prompt  askb
      GetInt  [ebp-8]     # breadth
  
      mov eax, [ebp-4]    # eax = l
      add eax, [ebp-8]    # eax = l + b
      add eax, eax    # eax = 2 * (l + b)
      mov [ebp-12], eax
  
      Prompt  ans
      PutInt  [ebp-12]
      PutEoL
  
      mov esp, ebp
      pop ebp     # unwinding stack-frame
      ret
  
  .global _entry
  
  .end
  </code></pre>