title: How is the stack and link register used in an interrupt procedure? (ARM Processor)
body: <p>The <a href="http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0497a/CHDBIBGJ.html" rel="nofollow noreferrer">ARM</a> website says that the link register stores the return information for subroutines, function calls, and exceptions (such as interrupts), so what is the stack used for?</p>
  
  <p>The answers to <a href="https://stackoverflow.com/questions/1464035/what-is-a-stack-pointer-used-for-in-microprocessors">this similar question</a> say that the stack is used to store the return address, and to "push" on local variables that will need to be put back on the core registers after the exception. </p>
  
  <p>But this is what the link register is for, so is why is it needed? What is the difference between the two and how are they both used?</p>