A related instruction is the subroutine call, which transfers execution to a
subprogram and then, after the subprogram finishes, returns to the main program where it left off relatively independent of the remaining code.
The interrupt service routine is just like a subroutine. The difference is that when you call a
subroutine, you call it when you decide, and you understand completely what will be changed by the subroutine,
Interrupt Service Routines (ISRs) are to handle hardware interrupts.