122
ABOV Semiconductor Co., Ltd.
10.5 Interrupt Sequence
An interrupt request is held until the interrupt is accepted or the interrupt latch is cleared to ‘0’ by a reset or an
instruction. Interrupt acceptance always generates at last cycle of the instruction. So instead of fetching the current
instruction, CPU executes internally LCALL instruction and saves the PC at stack. For the interrupt service routine, the
interrupt controller gives the address of LJMP instruction to CPU. Since the end of the execution of current instruction,
it needs 3~9 machine cycles to go to the interrupt service routine. The interrupt service task is terminated by the
interrupt return instruction [RETI]. Once an interrupt request is generated, the following process is performed.
Figure 10.3 Interrupt Sequence Flow
Saves PC value in order to continue
process again after executing ISR
Program Counter low Byte
SP  SP + 1, M(SP)  (PCL)
Program Counter high Byte
SP  SP + 1, M(SP)  (PCH)
Interrupt Vector Address occurrence
(Interrupt Vector Address)
ISR(Interrupt Service Routine) move, execute
Program Counter high Byte recovery
(PCH)  M(SP), SP  SP - 1
Program Counter low Byte recovery
(PCL)  M(SP), SP  SP – 1