組合語言學習筆記(十二)內中斷

2021-06-22 19:27:56 字數 961 閱讀 3365

中斷:是cpu處理外部突發事件的乙個重要技術。

外部中斷:可以遮蔽的中斷(鍵盤中斷、印表機中斷等)

內部中斷:因硬體的出錯或運算出錯等

根據中斷型別碼,定位中斷處理程式,需要知道它的段位址和偏移位址

可以通過中斷向量表找到中斷處理程式的入口

中斷向量表指定存放在記憶體位址0處

256*4=1024個位元組(cs:ip)

在中斷過程中,需要設定標誌暫存器的tf和if的值為0

中斷過程如下:

獲取中斷型別碼n

pushf

tf=0,if=0

push cs

push ip

(ip)=(n*4) ,(cs)=(n*4+2)

常規的步驟:

1)儲存用的的暫存器

2)處理中斷

3)恢復用到的暫存器

4)用iret指令返回

iret:指令的功能用組合語言描述:

pop ip

pop cs

popf

iret通常和硬體自動完成的中斷過程配合使用

中斷過程中,暫存器入棧順序:標誌暫存器、cs、ip

而iret出棧順序:ip、cs、標誌暫存器

執行後,cpu回到了執行中斷處理程式前繼續執行的程式

可以將do0放入0000:0200中;將do0的入口位址放入中斷向量表中

某個**段多長:

do0end: nop;do0end什麼都不做,只是做個標號

offset do0end - offset do0

設定向量表:

mov ax,0

mov es,ax

mov word ptr es:[0*4],200h

mov word ptr es:[0*4+2],0

單步中斷:

如果檢測到標誌暫存器tf位為1,則產生單步中斷,引發中斷過程。

不應該將ss:sp的設定分開

《組合語言》學習(十二)內中斷

組合語言 第12章主要介紹8086cpu的內中斷的機制,包括 4種型別的內中斷 中斷型別碼 byte 256 中斷向量表 ivt 中斷過程 中斷處理函式的基本模型和iret中斷返回指令。文中以 除0 中斷為例,演示了中斷的處理過程和如何編寫及安裝中斷處理函式。本文將以一張思維導圖總結內中斷的知識點,...

組合語言 筆記 內中斷

中斷資訊 cpu不再接著向下執行,而是轉去處理這個特殊資訊 cpu內部有下面的情況發生時,將產生相應中斷資訊 8086cpu用稱為中斷型別碼的資料表示中斷資訊 用來處理中斷資訊的程式稱為中斷處理程式 一般來說,需要針對不同的中斷信心編寫不同的處理程式 中斷型別碼的作用就是用來定位中斷處理程式 cpu...

組合語言 內中斷

內中斷 在執行完當前正在執行的指令之後,檢測到從cpu內部發過來的或內部產生的一種特殊資訊,並且可以立即對所接收到的資訊進行處理 中斷資訊可以 於cpu外部和內部 內中斷的產生 1除法錯誤 0 2單步執行 1 3執行into指令 4 into 溢位中斷 4執行int指令,該指令格式 int n 指令...