Khi một ngắt được sinh ra bởi một thiết bị ngoại vi, NVIC sẽ được kích khởi CPU Cortex phục vụ ngắt. khi CPU Cortex đi vào chế độ của nó, nó sẽ đẩy một tập các thanh ghi vào vùng ngăn xếp. Thao tác này được thực hiên trong vi chương trình, vì vậy không cần viết thêm bất kỳ lệnh nào trong mã ứng dụng. Trong khi khung ngăn xếp đang được lưu trữ, địa chỉ bắt đầu của trình dịch vụ chứa ngắt đã được lấy về trên bus Icode. Vì vậy, thời gian từ lúc ngắt được sinh ra cho tới khi lệnh đầu tiên của trình dịch vụ ngắt được thực thi chỉ có 12 chu kỳ.
Hình 3-2: Khung ngăn xếp trong chế độ ngắt
Khung ngăn xếp bao gồm thanh ghi trạng thái chương trình, thanh ghi bộ đếm chương trình và thanh ghi liên kết. Ngăn xếp dùng để lưu ngữ cảnh mà CPU Cortex đang chạy. các thanh ghi từ R0-R3 cũng được lưu. Trong các chuẩn giao diện nhị phân ARM các thanh ghi này được sử dụng để truyền tham số, do đó thao tác lưu trữ các thanh ghi này sẽ được cung cấp cho chúng ta một bộ thanh ghi sẵn sang được sử dụng bởi trình phục vụ ngắt. Thanh ghi cuối cùng được lưu là R12, thanh ghi này được sử dụng bởi bất kỳ mã chương trình nào đang chạy khi một cuộc gọi hàm được thực hiện. Ví dụ, nếu bạn đang cho phép kiểm tra ngăn xếp trong trình biên dịch, mã chương trình được thêm vào khi biên dịch ra sẽ sử dụng R12 nếu nó cần một thanh ghi CPU. Khi kết thúc quá trình phục vụ ngắt, khung ngăn xếp được khôi phục tự động bởi chương trình song song với thao tác đó thì địa chỉ trở về được lấy về, để chương trình nền có thể tiếp tục sau 12 chu kỳ.
Hình 3-3: Đáp ứng thời gian khi một ngắt bất kỳ sảy ra của Cortex-m3