Контролер має реєстр лічильника програм, який відстежує адресу, де зберігається наступна інструкція, що виконується. (Цей регістр також пишеться, коли виконується стрибок.)
Контролер має вектор переривання (або іноді більше одного, залежно від типу переривання), який є адресою, де зберігається ISR. Ця адреса завжди однакова - це як вектор скидання, звідки запускається програма.
(Часто в цьому векторі зберігається інструкція про стрибок, яка переходить до фактичного коду для виконання, оскільки місця у векторі недостатньо для зберігання всієї процедури. Однак важливим є те, що ISR завжди розташований у тому самому положення.)
Коли відбувається переривання, в контролері є якесь виділене обладнання, яке записує лічильник програми з вектором переривання. Потім, коли контролер досягає наступного циклу інструкцій, він отримує інструкцію з адреси, на яку вказує лічильник програми (так, вектор переривання).
(В одному циклі інструкцій контролера є різні завдання, які він виконує: він отримує наступну інструкцію з адреси, на яку вказує лічильник програм; він збільшує лічильник програм; він декодує інструкцію та виконує її.)
CALL
інструкція, оскільки переривання припиняються по-іншому (пор.RET
Vs.RETI
).