在實模式下,從位址 0 開始的 1kb 大小記憶體構成乙個中斷向量表,表中每一項包括 4 個位元組,對應一
個中斷向量,儲存了該中斷向量所對應中斷處理程式的入口位址,如圖 6.4 所示。
進入保護模式後,中斷向量表改名為中斷描述符表(interrupt descriptor table,idt)
,並允許在任意
記憶體位址存放,
因此 cpu 專門設定了乙個中斷描述符表暫存器 idtr,
用來儲存 idt 在記憶體中的起始位址。
同時 idt 的每個表項被稱為門描述符(gate descriptor)
,也不再是 4 個位元組,而是擴充套件為 8 個位元組。
「門」的意思是當異常或中斷發生時,必須先通過相應門的檢查,才可以進入異常或中斷服務程式。
如圖 6.5 所示為 idtr 暫存器的結構。
idtr 低 16 位儲存 idt 的大小,由此可見,保護模式下 idt 最大可以有 64kb,即 8k 個表項。但由
於 i386 只識別 256 個中斷向量,所以 idt 最大只能為 2kb,即包含 256 個表項,對應 256 個中斷向量。
中斷向量表
中斷向量表 中斷源的識別標誌,可用來形成相應的中斷服務程式的入口位址或存放中斷服務程式的首位址 稱為中斷向量。在pc at中由硬體產生的中斷標識碼被稱為中斷型別號 當然,中斷型別號還有其他的產生方法,如指令中直接給出 cpu自動形成等 即在中斷響應期間 8259a 產生的是當前請求中斷的最高優先順序...
中斷向量表
關於中斷向量的幾點注釋 1.系統引導時,中斷向量表放在記憶體何處?系統剛引導時,記憶體0x00000到0x0003ff共1kb的空間用於存放中斷向量表。每個中斷向量占用4個位元組,共可儲存256個中斷向量。2.系統引導時,處在實模式下,只可定址1mb,為什麼要用4個位元組來定址中斷呢處理程式?剛看到...
中斷描述符表
中斷描述表是乙個系統表,它與每乙個中斷或異常向量相聯絡,每乙個向量在表中有相應的中斷或異常處理程式的入口位址。核心在允許中斷發生前,必須適當地初始化idt。在第二章中,我們介紹了gdt和ldt,idt的格式與這兩種表的格式非常相似,表中的每一項對應乙個中斷或異常微量,每個向量由8個位元組組成。因此,...