Khi ngắt xảy ra và CPU chấp thuận, chương trình chính ngắt quãng những hoạt động sau đây xảy ra:
+ Lệnh hiện hành hồn tất việc thực thi. + Cất PC vào ngăn xếp.
+ Trạng thái ngắt hiện hành được cất vào bên trong. + Các ngắt bị chặn ở mức ngắt.
+ Nạp vào PC địa chỉ vector của ISR. + ISR thực thi.
ISR thực thi và đáp ứng ngắt. ISR hồn tất bằng lệnh RETI (quay về từ ngắt). Điều này làm lấy lại giá trị cũ PC từ ngăn xếp và lấp lại trạng thái ngắt cũ. Thực thi chương trình chính ở chỗ mà nĩ bị dừng.
Các vector ngắt (Interrupt Vectors):
Khi chấp nhận ngắt, giá trị được nạp vào PC được gọi là vector ngắt. Nĩ là địa chỉ bắt đầu của ISR cho nguồn tạo ngắt. Các vector ngắt được cho bảng sau:
Ngắt Cờ Địa chỉ vector
Reset hệ thống RST 0000H
Bên ngồi 0 IE0 0003H
Timer 0 TF 0 000BH
Bên ngồi 1 IE 1 0013H
Timer 1 TF 1 001BH
Port nối tiếp T1 hoặc R1 0023H Bảng : Các vector ngắt
Vector Reset hệ thống (RST ở địa chỉ 0000H) được để trong bảng này vì theo nghĩa này nĩ giống Interrupt: nĩ ngắt chương trình chính và nạp giá trị mới cho PC.
Khi “chỉ đến một ngắt”, cờ gây ra ngắt tự động bị xĩa bởi phần cứng. Các ngoại lệ là RI và TI với các ngắt port nối tiếp và TF2, EXF2 với các Interrupt Timer. Vì cĩ hai nguồn cĩ thể cho mỗi ngắt này, khơng thực tế để CPU xĩa cờ ngắt. Các bit này phải được kiểm tra trong ISR để xác định nguồn ngắt và cờ tạo ngắt sẽ được xĩa bằng phần mềm. Thơng thường một rẽ nhánh xảy ra với một phản ứng thích hợp, phụ thuộc vào nguồn ngắt.
Vì các vector ngắt ở phần đầu của bộ nhớ chương trình, nên lệnh thứ nhất của chương trình chính thường là lệnh nhảy qua chương trình chính này. Ví dụ như lệnh LJMP 0030H.
Chương trình chính
Các điểm vào Reset và ngắt LJMP main FFFFH 0030H 002fH 0000H Hình : Tổ chức bộ nhớ khi dùng các ngắt