中斷處理過(guò)程:
1. 某一中斷源向CPU發(fā)起中斷請(qǐng)求,對(duì)于外部中斷CPU在當(dāng)前指令最后一個(gè)時(shí)鐘周期查詢中斷請(qǐng)求信號(hào)的有效性,在系統(tǒng)開(kāi)中斷的情況下,CPU向中斷源回送中斷應(yīng)答信號(hào),系統(tǒng)進(jìn)入中斷響應(yīng)周期。(CPU對(duì)系統(tǒng)內(nèi)部中斷源提出的中斷請(qǐng)求必須響應(yīng),而且自動(dòng)取得中斷服務(wù)子程序的入口地址,執(zhí)行中斷服務(wù)子序;
2. CPU響應(yīng)中斷后,將狀態(tài)標(biāo)志寄存器壓入堆棧保護(hù);
3. 再將其中的中斷標(biāo)志位清除從而關(guān)閉中斷;
4. CPU將當(dāng)前CS(代碼段地址)和IP(將要執(zhí)行的下一條地址)壓入堆棧保護(hù)斷點(diǎn);
5. CPU確定提出請(qǐng)求的中斷源,獲得中斷向量號(hào),在對(duì)應(yīng)的中斷向量表獲得中斷入口地址, 裝入CS和IP中;
6. 將斷點(diǎn)處各寄存器的內(nèi)容壓入堆棧保護(hù)現(xiàn)場(chǎng);
7. 此時(shí)程序跳轉(zhuǎn)至中斷服務(wù)子程序執(zhí)行;
8. 中斷處理完畢,將堆棧各寄存器內(nèi)容彈棧,恢復(fù)斷點(diǎn)處各寄存器的值;
9. 在中斷服務(wù)子程序最后安排一條返回指令,執(zhí)行該指令將堆棧中CS和IP的值彈出,恢復(fù)主程序斷點(diǎn)處地址值,同時(shí)恢復(fù)標(biāo)志寄存器的內(nèi)容。程序轉(zhuǎn)至被中斷的程序繼續(xù)執(zhí)行。
更多關(guān)于“物聯(lián)網(wǎng)培訓(xùn)”的問(wèn)題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學(xué),課程大綱緊跟企業(yè)需求,更科學(xué)更嚴(yán)謹(jǐn),每年培養(yǎng)泛IT人才近2萬(wàn)人。不論你是零基礎(chǔ)還是想提升,都可以找到適合的班型,千鋒教育隨時(shí)歡迎你來(lái)試聽(tīng)。