中斷向量表的中斷向量,中斷向量表的功能是什麼?簡述CPU利用中斷向量表轉入中斷服務的過程。

2021-03-04 05:04:30 字數 3490 閱讀 5557

1樓:匿名使用者

是指中斷服務程式入口位址的偏移量與段基值,乙個中斷向量佔據4位元組空間。中斷向量表是8088系統記憶體中最低端1k位元組空間,它的作用就是按照中斷型別號從小到大的順序儲存對應的中斷向量,總共儲存256個中斷向量。在中斷響應過程中,cpu通過從介面電路獲取的中斷型別號(中斷向量號)計算對應中斷向量在表中的位置,並從中斷向量表中獲取中斷向量,將程式流程轉向中斷服務程式的入口位址。

中斷向量表的功能是什麼?簡述cpu利用中斷向量表轉入中斷服務的過程。

2樓:匿名使用者

中斷向量表具有根據中斷型別號儲存相應中斷服務程式入口位址的功能。cpu利用中斷向量表轉入中斷服務程式的過程如下:由中斷型別號n乘以4獲得中斷向量在中斷向量表中的起始位址,然後把儲存在低位址4n、4n+1兩單元16位的中斷服務程式入口偏移位址置入ip,把儲存在高位址4n+2、4n+3兩單元16位的中斷服務程式入口段位址置入cs,最後跳轉到中斷服務程式。

中斷向量表怎麼看?

3樓:狄特里希

中斷向量:是指中斷服務程式入口位址的偏移量與段基值,乙個中斷向量佔據4位元組空間。中斷向量表是8088系統記憶體中最低端1k位元組空間,它的作用就是按照中斷型別號從小到大的順序儲存對應的中斷向量,總共儲存256個中斷向量。

在中斷響應過程中,cpu通過從介面電路獲取的中斷型別號(中斷向量號)計算對應中斷向量在表中的位置,並從中斷向量表中獲取中斷向量,將程式流程轉向中斷服務程式的入口位址。

計算機記憶體的前1024個位元組(偏移量00000h到003ffh)儲存著256個中斷向量,每個中斷向量佔4個位元組,前兩個位元組儲存著中斷服務程式的入口位址偏移量,後兩個位元組儲存著中斷程式的入口段位址,使用時,只要將它們分別調入暫存器ip及cs中,就可以轉入中斷服務程式實現中斷呼叫。每當中斷發生時,cpu將中斷號乘以4,在中斷向量表中得到該中斷向量位址,進而獲得ip及cs值,從而轉到中斷服務程式的入口位址,呼叫中斷。這就是中斷服務程式通過中斷號呼叫的基本過程。

在計算機啟動的時候,bios將基本的中斷填入中斷向量表,當dos得到系統控制權後,它又要將一些中斷向量填入表中,還要修改一部分bios的中斷向量。有一部分中斷向量是系統為使用者保留的,如60h到67h號中斷,使用者可以將自己的中斷服務程式寫入這些中斷向量中。不僅如此,使用者還可以自己更改和完善系統已有的中斷向量。

在c語言中,提供了一種新的函式型別interrupt,專門用來定義中斷服務程式,比如我們可以寫如下的中斷服務程式:

/*例1:中斷服務程式*/

void interrupt int60()

乙個簡單的中斷服務程式寫好了,如何把它的函式入口位址填寫到中斷向量表中,以便在產生中斷的時候能轉入中斷服務程式去執行呢?這裡要用到setvect()和getvect()函式。setvect()有兩個引數:

中斷號和函式的入口位址,其功能是將指定的函式安裝到指定的中斷向量中,getvect()函式有乙個引數:中斷號,返回值是該中斷的入口位址。在安裝中斷以前,最好用disable()函式關閉中斷,以防止在安裝過程中又產生新的中斷而導致程式執行混亂,待安裝完成後,再用enable()函式開放中斷,使程式正常執行。

中斷向量是什麼???為什麼叫向量???

4樓:暴走少女

計算機發生中斷時各個暫存器和程式計數器所指向的內容,或者其中所存的內容。在發生中斷時,可以將這些向量暫時的儲存在另乙個地方,而當執行完別的程式時,可以從暫存的地方將中斷向量取出放入原來的位置,從而可以執行原來中斷的程式,這個過程叫做中斷向量處理。

計算機在執行一些程式時,為了執行另外的一些程式,或者發生了不可阻止的錯誤,就會發生中斷。中斷是一種計算機的行為,在具體硬體上表現為電平的變化。

8086系統中,中斷型別碼、中斷向量、中斷向量表的關係是什麼?

5樓:匿名使用者

中斷向量=[中斷x4],包括括號的含義是記憶體單元的內容。(也就是說,只儲存在記憶體位址0中,絕對開始位置)**:中斷型別,實際上被中斷,標記為不同的中斷服務程式的名稱,以呼叫中斷程式。

1、中斷向量:中斷服務程式的入口位址。乙個向量表示4個位元組的輸入位址。

2、對規模的破壞:因為有多個中斷請求,有多個中斷服務例程,對應的儲存有多個程式入口位址(即中斷向量)。這個系統在乙個特定區域的記憶體中安排乙個中斷到規模,專門儲存所有的中斷向量。

這種形式的規模的中斷。

3、在8086系統中,乙個向量中斷用於描述8086系統中中斷型別**、中斷向量和中斷規模之間的關係。

微控制器中斷向量怎麼來的

6樓:匿名使用者

中斷向量其實就是中斷位址,這個位址單元是在微控制器出廠前由廠家按照規定設計好的,就是告訴你了我這款微控制器,在哪種中斷發生時程式會轉而跳到這個中斷位址來執行。例如,在外部中斷0發生時,程式會自動跳到000bh這個位址去執行,這個位址就是外部中斷0的中斷向量。這種響應過程是為了讓微控制器能快速地響應使用者自己設計的一些動作。

往往中斷向量都只是乙個儲存單元,不足以放使用者自己的響應程式段,因此這個向量(位址)中往往放的只是乙個跳轉指令,以指引程式跳轉到我的響應程式那裡去執行。

中斷向量表的作用是什麼?如何設定中斷向量表

7樓:單于向晨紅捷

首先你要知道什麼是中斷。

當中斷發生後,cpu就根據中斷向量表來決定應該跳轉到**。

中斷向量表的設定要看當前cpu執行的模式。如果是實模式的話,中斷向量表就在實體地址0000h開始。如果是保護模式就複雜了,要用lgdt之類的命令來載入表,教寫作業系統的書會有說的。

不過話說回來,如果你不是寫作業系統的話,沒必要理中斷向量表之類的,作業系統本身提供了另外一套更安全便捷的介面讓應用程式實現相應的功能。而且,這麼敏感的命令只能ring0**使用,一般程式都不能執行。

8樓:匿名使用者

首先你要知道什麼是中斷。

當中斷發生後,cpu就根據中斷向量表來決定應該跳轉到**。

中斷向量表的設定要看當前cpu執行的模式。如果是實模式的話,中斷向量表就在實體地址0000h開始。如果是保護模式就複雜了,要用lgdt之類的命令來載入表,教寫作業系統的書會有說的。

不過話說回來,如果你不是寫作業系統的話,沒必要理中斷向量表之類的,作業系統本身提供了另外一套更安全便捷的介面讓應用程式實現相應的功能。而且,這麼敏感的命令只能ring0**使用,一般程式都不能執行。

9樓:我不爭

一樓正解,補充下。

中斷向量是指中斷發生時,存放在記憶體中,用於指向中斷處理程式位址的資料,每個中斷向量佔乙個字,低位元組為中斷號,高位元組為例行程式的偏移位址。這樣乙個中斷向量乙個中斷向量排下來,形成一張表,就叫中斷向量表。

因為中斷向量排放是有規律的,所以中斷發生時,很容易根據中斷號找到中斷向量,然後再根據中斷向量找到需要的中斷處理程式。

既然你是學彙編的,設定中斷向量表應該不難吧,直接修改記憶體就可以了。不過電腦重啟之後又會還原的。 好像還有兩個dos中斷分別是取中斷向量和設定中斷向量,你可以自己查。

什麼叫中斷,中斷向量,中斷向量表

你說得這個和操作bai系統有關du系,具體的入口位址,如zhi 果在實模式下,dao直接按照中回斷字長,從答 首位址往下數到20個應該就是他的入口位址了。如果在保護模式下,就得看idt表中的指向是多少了,不管幾號,都可以由idt指定。8086系統中,中斷型別碼 中斷向量 中斷向量表的關係是什麼?中斷...

8088中斷向量表的作用是什麼,中斷向量表的作用是什麼如何設定中斷向量表

中斷向量是中斷服務程式的入口位址.將所有中斷向量集中放在一起,形成中斷向量表.8086系統有256個型別的中斷源.每個型別對應乙個中斷向量,乙個中斷向量由四個位元組組成 2個高位址位元組 存放中斷服務程式的 段的段值 2個低位址位元組 存放中斷服務程式的偏移位址.中斷向量表放在記憶體的地段位址0單元...

CPU相應中斷後得到中斷向量號為9,則從()單元取出中斷服務

cpu在響應中斷前會 bai保護主程式當前指du令下面的一條指令的zhi位址dao 就是將當前的ip和cs的內內容入堆疊。cpu響應中容斷之後,將指令位址從堆疊中取出即可找到中斷服務子程式入口位址。cpu響應中斷做如下動作 將中斷型別碼放入暫存器儲存 將標誌暫存器內容壓入堆疊,以保護中斷時的狀態 將...