Pengontrol memiliki register untuk penghitung program yang melacak alamat tempat menyimpan instruksi yang akan dieksekusi selanjutnya. (Register ini juga ditulis ketika lompatan dieksekusi.)
Pengontrol memiliki vektor interupsi (atau kadang-kadang lebih dari satu, tergantung pada jenis interupsi), yang merupakan alamat tempat penyimpanan ISR. Alamat ini selalu sama - ini seperti reset vektor, tempat program dimulai.
(Seringkali, ada instruksi lompatan yang disimpan pada vektor ini yang melompat ke kode aktual untuk dieksekusi, karena ruang pada vektor tidak cukup untuk menyimpan seluruh prosedur. Namun, yang penting adalah bahwa ISR selalu terletak pada saat yang sama posisi.)
Ketika interupsi terjadi, ada beberapa perangkat keras khusus di controller yang menulis penghitung program dengan vektor interupsi. Kemudian, ketika controller mencapai siklus instruksi berikutnya, ia mengambil instruksi dari alamat yang ditunjuk oleh penghitung program (jadi, vektor interupsi).
(Dalam satu siklus instruksi controller ada tugas yang berbeda yang dilakukannya: ia mengambil instruksi berikutnya dari alamat yang ditunjuk oleh penghitung program; ia meningkatkan penghitung program; ia menerjemahkan instruksi, dan menjalankannya.)
CALL
instruksi biasa , karena interupsi diakhiri dengan cara yang berbeda (lih.RET
Vs.RETI
).