中斷訊號可以來自cpu內部或外部。
一. 8086cpu內部中斷訊號有
(1) 除法錯誤
(2) 單步執行
(3) 執行into指令
(4) 執行int指令
1. 中斷碼
8086用乙個位元組來描述中斷碼,可以表示256中不同的中斷資訊。
除法錯誤中斷碼為0
單步執行中斷碼為1
執行into指令中斷碼為4
執行int n指令中斷碼為n
2. 中斷向量表
用來存放中斷碼對應中斷處理程式的入口位址,乙個位址包括段位址和偏移位址,高位址存放段位址,低位址存放偏移位址,需要四個位元組來儲存中斷處理程式的入口位址,256個中斷訊號處理程式需要1024個位元組來儲存。8086cpu中斷向量表存放在0位址處開始的1024個儲存單元中,位址為0000:0000~0000:
03fff。
3. 中斷處理程式
cpu在接收到中斷訊號後,停止當前正在執行的程式,跳轉到由中斷號對應的中斷向量表位址處,去執行中斷處理程式。
4. 中斷過程(硬體自動完成)
(1) 由中斷資訊得到中斷碼
(2) 標誌暫存器入棧
(3) 設定標誌暫存器tf和if為0
(4) cs入站
(5) ip入站
(6) 用中斷向量表中位址設定cs和ip
5. 而iret指令是ip出棧,cs出棧和標誌暫存器出棧
自己編寫中斷處理函式,只需要將中斷處理函式的位址存放到相應的中斷向量表處,然後呼叫iret指令返回。
6. 單步中斷,cpu在執行完一條指令後,如果檢測到標誌暫存器tf位為1,則產生單步中斷,觸發中斷過程。
7. int指令,直接觸發乙個n號中斷
內部中斷也就是通常所說的軟中斷。
二. 8086cpu外部中斷,也就是通常所說的硬中斷,理解什麼是軟中斷什麼是硬中斷,就看是否是由電平訊號去觸發中斷過程。
1. 可遮蔽中斷,cpu根據標誌暫存器if位決定是否響應中斷,if=1,響應中斷,if=0,不響應中斷。
2. 不可遮蔽中斷,cpu必須響應中斷。
8086彙編學習筆記9 中斷
中斷訊號可以來自cpu內部或外部。一.8086cpu內部中斷訊號有 1 除法錯誤 2 單步執行 3 執行into指令 4 執行int指令 1.中斷碼 8086用乙個位元組來描述中斷碼,可以表示256中不同的中斷資訊。除法錯誤中斷碼為0 單步執行中斷碼為1 執行into指令中斷碼為4 執行int n指...
8086學習(四)中斷
為什麼要用io介面?答 四個不匹配 速平格時,就這樣記了,沒法記的。針對這幾個不匹配,用不同的方法,例如設定緩衝以匹配速度,設定電平轉換電路,設定格式轉換電路,設定時序控制電路等 緩衝器與鎖存器各用在什麼地方?很顯然了,緩衝器用於匯流排上,起到緩衝作用,提高匯流排驅動能力 電平匹配 鎖存器具有暫存資...
ARM9 中斷學習
中斷的概念 指 cpu 在正常執行程式時,由於內部或外部事件引起 cpu 暫時中止執行現行程式,轉 去執行請求 cpu 為其服務的那個外設或事件的服務程式,待該服務程式執行完後又返 回到被中止的程式這樣乙個過程。中斷的優先順序 為使系統能及時響應並處理發生的所有中斷,系統根據引起中斷事件的重要性和緊...