8086汇编学习笔记9-中断
中斷信號可以來自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-中断的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 8086汇编学习笔记10-端口
- 下一篇: 汇编语言笔记17-使用BIOS进行键盘输