A hardware or software call for an interrupt (known as an "interrupt request", or IRQ) is taken care of by an "interrupt handler" or "interrupt service routine" (ISR) in the processor. It puts what is it doing at the time onto a stack and then follows certain instructions that does a given task on behalf of the system, which does not have to be part of the program it does. Once it is done following the instructions, the ISR then takes back what it put on the stack and continues with what it was doing before the interrupt happened.