8086彙編學習筆記9 中斷

2021-06-01 19:19:36 字數 1035 閱讀 5385

中斷訊號可以來自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 為其服務的那個外設或事件的服務程式,待該服務程式執行完後又返 回到被中止的程式這樣乙個過程。中斷的優先順序 為使系統能及時響應並處理發生的所有中斷,系統根據引起中斷事件的重要性和緊...