彙編 (十) 內中斷

2021-09-25 16:40:27 字數 1055 閱讀 3801

1.1 內中斷的產生

當cpu內部有下面內容發生的時候,將產生相應的中斷資訊,

8086cpu使用中斷型別碼的資料來標識中斷資訊的**,中斷型別碼為乙個位元組型資料,可以表示256種中斷資訊**。

1.2 中斷向量表

cpu用 8位的中斷型別碼 通過 中斷向量表 找到相應的 中斷處理程式的入口位址。

cpu如何找到中斷向量表?

中斷向量表在記憶體中存放,在8086pc機中,中斷向量表指定放在記憶體位址0處。從記憶體0000:0000到0000:03ff的1024個單元中存放著中斷向量表。

在中斷向量表中乙個表項占多大空間?

乙個表項存放乙個中斷向量,也就是乙個中斷處理程式的入口位址,這個入口位址包括 段位址 和  偏移位址。所以乙個表現佔兩個位元組,高位址字存放段位址,低位址字存放偏移位址。

1.3 中斷過程

中斷過程 是指在中斷向量表中找到中斷處理程式的入口,最終目的是用入口位址設定cs和ip,使cpu執行中斷處理程式。這個過程是由硬體自動完成。硬體自動完成之後,cs:ip將指向中斷處理程式的入口,cpu開始執行中斷處理程式。

在設定cs:ip之前,需要將原來的cs:ip值儲存在 棧 中。

過程如下:

1.4 iret指令

中斷處理程式編寫方法:

iret指令功能用彙編描述:

pop ip

pop cs

popf

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

iret的出棧順序是ip, cs, 標誌暫存器。

1.5 響應中斷的特殊情況

一般情況下,cpu在執行完當前指令後,如果檢測到中斷資訊,就響應中斷,引發中斷過程。

但是,在有些情況下,cpu在執行完當前指令後,即便發生中斷,也不會響應,比如:

在執行完向ss暫存器傳送資料的指令後,即便是發生中斷,cpu也不會響應。

主要原因是:

ss:sp聯合指向棧頂,而對他們的設定應該連續完成。

組合語言 內中斷

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

組合語言 內中斷

中斷的意思是指cpu不在接著 剛執行的指令 向下執行,而是轉去處理這個特殊資訊,而這個特殊的資訊我們可以稱其為中斷資訊。中斷資訊是要求cpu馬上進行某種處理,並向所要進行的該種處理提供了必備的引數的通知資訊。對於8086cpu,當cpu內部有下面的情況發生的時候,將產生響應的中斷資訊。而中斷資訊中必...

組合語言 內中斷

中斷的意思是指cpu不在接著 剛執行的指令 向下執行,而是轉去處理這個特殊資訊,而這個特殊的資訊我們可以稱其為中斷資訊。中斷資訊是要求cpu馬上進行某種處理,並向所要進行的該種處理提供了必備的引數的通知資訊。對於8086cpu,當cpu內部有下面的情況發生的時候,將產生響應的中斷資訊。而中斷資訊中必...