中斷向量表是存放在什麼的儲存區域

2021-03-19 18:19:06 字數 5483 閱讀 6065

1樓:戀夢

中斷向量表是8086/88系統記憶體中最低端1k位元組空間,它的作用就是按照中斷型別號從小到大的順序儲存對應的中斷向量,總共儲存256箇中斷向量。存放地址是00000h~03fffh

2樓:匿名使用者

首先必須理解bios中斷和作業系統的中斷,bios中斷是已經儲存在主機板上的rom中,系統啟動時就會自動放到記憶體0的位子,我們也是通過這些中斷做進一步的工作,作業系統的中斷是編寫核心的人寫的,它存放咋記憶體的位子由編寫核心的人決定。linux中作業系統的中斷向量表就把bios中斷表覆蓋了,但 dos系統卻沒有。所以我們在windows下編彙編時兩種中斷都可以用,但在linux就只能用系統中斷了。

什麼是中斷向量?什麼是中斷向量表,有何作用,位於記憶體什麼位置?8086共有多少級中斷?

3樓:藍色楓葉

處理機可處理的每種中斷的標號為中斷型別碼。

中斷向量指中斷處理程式的入口地址,由處理機自動定址。

中斷向量表是存放中斷處理程式入口地址的預設的記憶體區域。在8086中,中斷型別碼乘以4得到向量表的入口,從此處讀出4個位元組內容即為中斷向量。

因中斷型別碼為8位,中斷型別碼的個數為0——ffh,所以最多有256個(級)中斷

望採納!

4樓:匿名使用者

84h是它的i/o地址代表它的中斷型別是21即為dos系統功能呼叫

fah應為0fah,即dos系統功能呼叫中的開啟檔案(fcb)功能

呼叫引數ds:dx=fcb首地址 返回引數al=00檔案找到al=ff檔案未找到

請問arm的bootloader和中斷向量表是什麼關係?他們的存放地址是**?上電以後是從boot

5樓:匿名使用者

中斷向量表是一個地址集合,什麼樣的地址呢?就是當處理器執行程式時出狀況了,它就得想辦法應對狀況,怎麼應對呢?去**應對呢?

這個向量表就是它要去的地方,比如發生中止異常abort時,處理器就會跳到向量表中的第5個向量,也就是0x0000_0010處去執行,至於在這個地址去執行什麼,程式設計師說了算。

而bootloader,只是一個平臺初始化檔案,或者說只是一個初始化程式,通常是要對處理器中的堆疊、mmu、看門狗、tlb、快取等硬體進行一個初始設定,或者是對應用程式的所有引數(比如資料段.data全域性變數.bss等)等軟體環境進行一個初始設定,以便作業系統(沒有作業系統時,直接執行應用程式)進行正常啟動。

和我們pc機的boot程式是基本相同的。

因此,中斷向量表是處理器進行異常處理的一些入口地址集合,而bootloader是進行初始化的一段程式。上電以後,基本上市面上所有處理器都是從地址0x00000000處開始執行的,這個地址就是中斷向量表中的復位向量了,還有,對於大部分arm來說,向量表是不會變的,始終是在地址空間的最前端,這個不是儲存在**,而是固化在硬體中的,但是在地址空間最前端對映的裝置,卻不是固定不變的,你可以將rom、ram及外部flash對映在這些地址,那麼就可以把中斷向量表對應的處理程式放在rom、ram、及flash中了。而bootloader,肯定是放在rom、flash這些非易失性儲存器中的,上電後bootloader所在的儲存器肯定對映在0x00000000處,因此cpu就可以順利找到並執行之。

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

6樓:匿名使用者

中斷型別碼:,其實就是中斷號,對不同的中斷服務程式不同的名稱記號,以呼叫該中斷程式.

中斷向量:指向中斷服務程式的入口地址.一個向量代表的入口地址為4個位元組.

中斷向量表:由於存在多箇中斷請求,相應有多箇中斷服務程式,即有多個存放這些程式的入口地址(即中斷向量).為此係統在記憶體的特定區域安排一張中斷向量表,專門存放所有的中斷向量.

此表即中斷向量表.

以上三者關係:中斷向量=[中斷號x4], 其中方括號的含義是記憶體單元的內容.(即中斷向量表剛好存放在記憶體絕對地址0開始的位置)

7樓:匿名使用者

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

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

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

這種形式的規模的中斷。

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

8樓:匿名使用者

5. 2 8086/8088 中斷

系統 一、中斷分類及中斷型別碼

中斷源 :引起中斷的原因或發出中斷請求的裝置稱為中斷源。

• 中斷的分類

共分為兩類:硬體中斷和軟體中斷

①硬體中斷 :即通過外部的硬體產生的中斷,如印表機、鍵盤等,有時也稱為外部中斷。硬體中斷又可分為兩類:可遮蔽中斷和不可遮蔽中斷。

不可遮蔽中斷 :由 nmi 引腳引入,它不受中斷允許標誌的影響,每個系統中僅允許有一個,都是用來處理緊急情況的,如掉電處理。這種中斷一旦發生,系統會立即響應;

可遮蔽中斷 :由 intr 引腳引入,它受中斷允許標誌的影響,也就是說,只有當 if = 1 時,可遮蔽中斷才能進入,反之則不允許進入,可遮蔽中斷可有多個,一般是通過優先順序排隊,從多箇中斷源中選出一個進行處理。

②軟體中斷 (內部中斷):即根據某條指令或者對標誌暫存器中某個標誌的設定而產生,它與硬體電路無關,常見的如除數為 0 ,或用 int n 指令產生。

溢位中斷由 int0 指令引起

斷點中斷由 int3 指令引起

單步由標誌 tf 引起 ↘不對應指令

除 0 由計算結果引起 ↙不對應指令

• 中斷型別碼:

8086/8088 為每個中斷源分配了一箇中斷型別碼,其取值範圍為 0 ~ 255 ,即可處理 56 種中斷。其中包括軟體中斷,系統佔用的中斷以及開放給使用者使用的中斷。

二、中斷向量和中斷向量表

系統處理中斷的方法很多,處理中斷的步驟中最主要的一步就是如何根據不同的中斷源進入相應的中斷服務子程式,目前用的最多的就是向量式中斷。

中斷向量 :把各個中斷服務子程式的入口都稱為一箇中斷向量;

中斷向量表 :將這些中斷向量按一定的規律排列成一個表,就是所謂的中斷向量表,當中斷源發出中斷請求時,即可查詢該表,找出其中斷向量,就可轉入相應的中斷服務子程式。

8086/8088 中斷系統中的中斷向量表是位於 0 段的 0 ~ 3fffh 的存貯區內,每個中斷向量佔四個單元,其中前兩個單元存放中斷處理子程式的入口地址的偏移量( ip ),低位在前,高位在後;後兩個單元存放中斷處理子程式入口地址的段地址( cs ),也是低位在前,高位在後,整個中斷向量的排列是按中斷型別號進行的。見 p 圖 5-14 。

圖示給出了中斷型別碼與中斷向量所在位置之間的對應關係。其中 00h ~ 04h 為專用中斷, 05h ~ 3fh 為系統保留中斷,使用者一般是不能對它們定義的(這裡面有一些為固定的用途,如 int 21h 即為 ms - dos 圖 5-14

的系統呼叫), 40 ~ ff 為使用者定義的中斷。

00h ~ 04h ――系統專用

10h ~ 1fh ―― bios 用

40h ~ ffh ――使用者用

08h ~ 0fh ――硬體中斷

20h ~ 3fh ―― dos 用

中斷型別號* 4 即可計算某個中斷型別的中斷向量在整個中斷向量表中的位置。如型別號為 20h ,則中斷向量的存放位置為 20h * 4 = 80h ,(設中斷服務子程式的入口地址為 4030 : 2010 ,則在 0000 :

0080h ~ 0000 : 0083h 中就應順序放入 10h 、 20h 、 30h 、 40h 。當系統響應 20h 號中斷時,會自動查詢中斷向量,找出對應的中斷向量裝入 cs 、 ip ,即轉入該中斷服務子程式。

三、中斷響應過程與時序

8086/8088 對軟體中斷和硬體中斷響應的過程是不同的,這是由於軟體中斷和硬體中斷所產生的原因不同,下面主要討論硬體中斷的情況。

• 硬體中斷的響應過程

硬體中斷指的是由 nmi 引腳進入的非遮蔽中斷或由 intr 引腳進入的可遮蔽中斷。下面以可遮蔽中斷為例。

cpu 在 intr 引腳上接到一箇中斷請求訊號,如果此時 if = 1 , cpu 就會在當前指令執行完以後開始響應外部的中斷請求,這時, cpu 在 引腳連續發兩個負脈衝,外設在接到第二個負脈衝以後,在資料線上傳送中斷型別碼,接到這個中斷型別碼後, cpu 做如下動作:

①將中斷型別碼放入暫存器儲存;

②將標誌暫存器內容壓入堆疊,以保護中斷時的狀態;

③將 if 和 tf 標誌清 0 ,目的是防止在中斷響應的同時又來別的中斷,而將 tf 清 0 是為了防止 cpu 以單步方式執行中斷處理子程式。這時要特別提醒,因為 cpu 在中斷響應時自動關閉了 if 標誌,因此使用者如要進行中斷巢狀時,必須在自己的中斷處理子程式中用開中斷指令來重新設定 if ;

④保護斷點,斷點指的是在響應中斷時,主程式當前指令下面的一條指令的地址。因此保護斷點的動作就是將當前的 ip 和 cs 的內容入棧,保護斷點是為了以後正確地返回主程式;

⑤根據取到的中斷型別碼,在中斷向量表中找出相應的中斷向量,將其裝入 ip 和 cs ,即呆自動轉向中斷服務子程式。

對 nmi 進入的中斷請求,由於其型別碼固定為 2 ,因此 cpu 不用從外設讀取型別碼,也不需計算中斷向量表的地址,只要將中斷向量表中 0000 : 0008h ~ 0000 : 000bh 單元內容分別裝入 ip 和 cs 即可。

圖 5-15 給出了 8086/8088 中斷響應過程的流程圖,對這個圖我們做幾點說明:

① 8086/8088 除軟體中斷外,內部「非遮蔽中斷」、「可遮蔽中斷」均設立有優先順序,其中內中(除單步外)――即 0 、 1 、 3 、 4 號中斷的優先順序高於非遮蔽中斷,非遮蔽中斷高於可遮蔽中斷,單步中斷優先順序最低;

②只有在可遮蔽中斷的情況下才判 if = 1 ?,才取中斷型別碼,其餘的沒有這個動作。

③關於單步中斷,它是每執行一條指令中斷一次,顯示出當時各暫存器的內容,供使用者參考,當進入單步中斷響應時, cpu 自動清除了 tf ,在中斷返回後,由於恢復了響應時的標誌暫存器的值,因此 tf = 1 ,執行完一條指令後又進入單步中斷,直到程式將 tf 改為 0 為止。

④關於中斷的巢狀, nmi 總是可以響應的,若在中斷處理子程式中設立了開中斷指令, intr 的請求也能響應。

⑤彈出 ip 、 cs 、標誌,返回斷點的動作由 iret 指令完成。

⑥有些情況下,即使條件滿足, cpu 也不能馬上響應中斷,必須執行完下一條指令(而不是當前指令)才行。

• 正好執行 lock 指令;

• 執行往 ss 暫存器賦值的傳送指令,因為一般要求連續用兩條指令對 ss 和 sp 暫存器賦值,以保證堆疊指標的正確性。

⑦當遇到等待指令或串操作指令時,允許在指令執行的過程中進入中斷。這時需注意在中斷處理子程式中保護現場,以保證中斷返回後能繼續正確地執行這些指令。

unix環境高階編 v節點是存放在記憶體中的嗎

unix環境高階程式設計,適合初學者嗎 我跟你說說我看apue的經歷。在看apue之前,我的linux知識已經積累很多了,c也是特別熟悉,以及c 但是第一次看apue還是讓人很沮喪的,中途而廢,因為裡面的很多問題是完全之前沒想過,接觸過的,知識儲備不夠,所以我放了差不多半年,這半年我補了很多知識,看...

丟什麼保什麼的成語,「棄什麼保什麼」的成語是什麼?

丟卒保車 di z b o j 生詞本 基本釋義 原是象棋術語。後比喻丟掉次要的,保住主要的。褒義出處京劇 龍江頌 第一場 為了堵江救旱,我們是會損失一些,這照我們下棋的說法,就叫做 丟卒保車 近反義詞 近義詞丟車保帥 丟盔卸甲 形容吃了敗仗狼狽逃跑的景象。丟三落四 形容做事馬虎粗心,不是丟了這個,...

微保是什麼情況,微保是幹什麼的?

寄左省杜拾遺 岑參 學霸說保險,專注保險測評!這裡有一份最新的國內熱門百萬醫療險對比表,送給大家看看 微醫保與國內熱門百萬醫療險對比表 微醫保作為熱門的百萬醫療險,前段時間已經升級為2020版本了。想知道這款產品到底怎麼樣嗎?咱們就來仔細 一下!先來看看產品介紹圖 總體來看,有這些優勢 1.基礎保障...