国产精品一区二区x88av_日韩三级av高清片_亚洲日本久久_丝袜亚洲另类丝袜在线

浙江自考網

咨詢熱線

15700080354 (點擊在線咨詢)
您現在的位置:浙江自考網>復習資料 > 正文
自考攻略

2023年4月浙江自考微機原理與接口技術復習筆記:8086/8088的中斷

時間:2023-01-06 10:21:43 作者:儲老師

自考助學 以下自考復習資料均由浙江自考網整理并發布,考生想要了解更多關于浙江自考報名、考試、成績查詢、畢業、歷年真題、常見問答等相關信息請關注浙江自考網,獲取浙江自考更多信息。


8086/8088有一個簡單而靈活的中斷系統,每個中斷都有一個中斷類型碼(Type Code),以供CPU進行識別,8086/8088最多能處理256種不同的中斷類型。中斷可以由CPU外的硬設備驅動,也可由軟件中斷指令啟動,在某些情況下,也可由CPU自身啟動,8086/8088的中斷源如圖4-10所示。從圖可見8086/8088的中斷源可分為兩類,即外部中斷和內部中斷。

4.3.1 外部中斷

8086/8088有兩條中斷信號線——INTR和NMI,可供外設向CPU發中斷請求信號。

1.可屏蔽中斷INTR

可屏蔽中斷請求線INTR通常由Intel 8259APIC驅動,該控制器又同需要中斷服務的設備相連,可由軟件命令來控制8259A的工作,8259A的主要任務是接收從與其相連的設備來的中斷請求,并判斷哪個提出請求的設備的優先級最高,如果被選中設備的優先級比現行正接受服務的設備(如果有的話)的優先級高.就啟動8086/8088的INTR線。

當INTR信號有效(為“H”)時,CPU將根據中斷允許標志IF的狀態而采取不同的措施。如果IF=“L”(置0),表示INTR線上的中斷屏蔽(masked)或禁止(disabled),CPU將不理會該中斷請求而處理下一條指令,由于CPU井不鎖存INTR信號,因此INTR信號必需保持有效狀態,直到接收到響應信號或撤消請求為止。如果IF=“H”(置1)表示INTR線上的中斷開放,CPU在完成現行正在執行的指令后,識別該中斷請求,并進行中斷處理。中斷允許標志IF可以用STI(中斷允許位置位)指令或CLI(中斷允許位清零)指令來設定。也可以將命令寫入8259A,從而有選擇地屏蔽INTR線上的中斷。

CPU對INTR中斷請求的響應過程是執行兩個INTA(中斷響應)總線周期,如圖4-11所示。如果在INTA周期內出現一個總線保持請求(HOLD——最小方式,或RQ/GT最大方式),那么在兩個INTA周期結束以前不會接受這個請求。在8086/8088的最大方式下,在這兩個INTA周期內輸出LOCK信號,以通知其它處理機不能再試圖控制總線。在第一個INTA周期內INTA信號通知8259A,中斷請求已被接受;在第二個INTA周期內INTA信號有效時,8259A必須把請求服務的那個設備的中斷類型碼(0~255)送上數據總線,該中斷類型碼是8259A的初始化過程中由8086/8088寫入的。CPU讀入該中斷類型碼后,由此調用相應的中斷服務程序。

2.不可屏蔽中斷NMI

不可屏蔽中斷請求信號NMI用來通知CPU,發生了“災難性”的事件,如電源掉電。存儲器讀寫出錯、總線奇偶位出錯等。NMI線上中斷請求是不可屏蔽的(即無法禁止的),而且立即被CPU鎖存,因此NMI是邊沿觸發的,不需要電平觸發。NMI的優先級也比INTR高。不可屏蔽中斷的類型號預定為2,在CPU響應NMI時,不必由中斷源提供中斷類型碼,因此NMI響應也不需要執行總線周期INTA。

CPU識別一個外部中斷請求所需的時間稱為“中斷等待時間”(Interrut Latency),這取決于執行完現行的指令還需多少個時鐘周期,一般而言,在執行乘法、除法、移位或循環指令時到達的中斷請求,其等待時間最長。

4.3.2 內部中斷

內部中斷是通過軟件調用的不可屏蔽中斷,包括溢出中斷、除法出錯中斷、單步中斷、INTn指令中斷以及單字節INT3指令中斷。

(1)溢出中斷。如果上一條指令使溢出標志OF置“1”,那么在執行溢出中斷指令

(INTO)時,立即產生一個4型中斷(中斷類型碼為4)。

(2)除法出錯中斷。在執行除法指令span或Ispan后,如果商大于規定的目標操作數(即目標寄存器所能表達的范圍),則CPU立即產生一個0型中斷。

(3)INTn指令中斷。8086/8088的指令系統中有一條INT指令,當執行完這條指令就立即產生中斷。編在該指令中的中斷類型碼告訴CPU調用哪個服務程序來處理這個中斷。

(4)斷點中斷(Breakpoint Interrupt)。斷點中斷即單字節INT3指令中斷,中斷類型碼為3。3型中斷是專供斷點用的,斷點一般可以處于程序中任何位置,在斷點處,停止正常執行過程,以使執行某種類型的特殊處理。通常,在調試時把斷點插入程序中的關鍵之處,以便顯示寄存器、存儲單元的內容。

(5)單步(陷附)中斷。當陷阱標志TF置“1”時,8086/8088處于單步工作方式。在

單步工作時,每執行完一條指令,CPU就自動產生一個1型中斷,作為中斷處理過程的一部分,CPU將自動地把標志壓入堆棧,然后清除TF和IF。 因此,當CPU進入單步中斷過程時,它就不處于單步工作方式,而以正常的方式工作。當單步中斷過程結束時,從堆棧中彈出原來的標志內容,使CPU返回單步方式。

單步方式是一種有用的調試工具,它使單步過程成為能逐條指令地觀察系統操作的一個“窗口”。例如單步中斷過程可以在每執行一條指令后打印或顯示寄存器內容、指令指針的值,以及關鍵的存儲器變量等,這樣就能詳細地跟蹤一個程序的具體執行過程。確定問題的所在。

8086/8088沒有直接對TF標志置“l”或置“0”的指令,可以通過修改存放在堆棧中標志內容而改變TF之值。可用PUM和MF指令直接壓入和彈出標志,標志與0100H相“或”就能將TF置“1”,標志與FEFFH相“與”就能將TF清“0”。用這種方法把TF置“1”后,第一個單步中斷將發生在執行單步處理程序中的IRET指令后的第一條指令之后。

如果CPU正處于單步工作方式,則它對中斷(內部中斷或外部中斷)的處理過程如下:控制傳遞給為處理所出現的那種類型的中斷而指定的程序(標志、CS和IP被壓入堆棧)。但是,在執行該程序的第一條指令之前,將“識別”(recognized)單步中斷,并且控制又傳遞給1型中斷處理程序(標志、CS和IP被壓入堆棧)。當單步中斷處理程序結束時,控制又返回原先的中斷處做接序,

上述所有內部中斷的特點是:

(1)中斷類型碼或者包含在指令中,或者是預先規定的;

(2)不執行INTA總線周期;

(3)除單步中斷外,任何內部中斷都無法禁止;

(4)除單步中斷外,任何內部中斷的優先級都比任何外部中斷的高。8086/8088的中斷優先級見表4-1。

優先級

除法出錯,INTnINTO
NMI
INTR
單步

最高


最低


表4-1 中斷優先級

4.3.3 中斷向量表(又稱中斷指針表)

中斷向量表是存放中斷服務程序入口地址(即“中斷向量”)的表格。它存放在存儲器

的最低端,共1024個字節,每4個字節存放一個中斷服務程序的入口地址(一共可存放256個中斷服務程序的入口地址)。較高地址的兩個字節存放中斷程序入口的段基值;較低的地址的兩個字節存放入口地址的段內偏移量,這4個單元的最低地址稱為向量表地址指針,其值為對應的中斷類型碼乘4。8086/8088的中斷向量表結構如圖4-12所示。

由圖可見,8086/8088的中斷向量表由三部分組成:專用的5個(0#~4#),保留的27個(5#~31#),可供用戶定義的224個(32#~255#)。“專用的”是指凡是8086/8088系統中統一規定的中斷類型;“保留的’”是指為系統開發所保留的中斷類型。

8086/8088在響應中斷以后,先將標志寄存器壓入堆棧,然后將執行一個與段間間接調用(CALL)指令相當的過程來啟動一個中斷過程,該過程中,CPU將CS和IP壓入堆棧,以保存斷點的地址,然后將中斷向量表中相應的4個字節內容放入IP和CS,使控制轉入中斷過程。

如果n個中斷請求同時到達,則CPU將按優先級順序來調用中斷過程

4.3.4 中斷過程

8086/8088對一個中斷過程的基本響應過程見圖4-13。當進入中斷過程時,CPU把標志寄存器,CS和IP壓入堆棧,并清除TF和IF。在中斷過程中,可以用STI指令重新開放外部中斷,使INTR線上的中斷請求能中斷這個中斷過程。注意,在STI之后的那條指令執行完以后才會真正開放中斷。NMI線上的中斷請求則始終能夠中斷任何外部中斷處理過程。中斷處理過程中出現的軟件中斷或處理機啟動的中斷也能中斷飭過程。必須注意的是,一個中斷處理過程中不能再發生讀過程在為之服務的,中斷。例如,試圖在除法出錯(0型)中斷處理過程中除以零,可能會陷入無窮盡的再入該過程的循環。必須有足夠大的堆棧空間,以便與該系統中可能出現的中斷嵌套的最大深度相適應。

同其它過程一樣,中斷過程也應該把它要使用的任何寄存器的內容在修改前保存起來,并在處理結束前再恢復其內容、中斷過程最好對程序中“關鍵部分”(這部分被中斷會造成出錯)以外的所有部分都開放外部中斷。若在一個過程中禁止外部中斷的時間過長,就可能丟失INTR線上的中斷請求。

所有的中斷過程都應該以IRET指令結尾,IRET指令總是認為堆棧仍處于進入該過程時的狀態。該指令將棧頂的三個字分別彈出到IP、CS和標志寄存器中,這樣就回到了中斷過程開始前將要執行的那條指令上去。

中斷過程所做的實際處理視應用場合而定,如果中斷過程正為一個外設服務,則它應該向該外設輸出一個命令,命令它撤消中斷請求。然后它可讀出該外設的狀態信息,確定中斷的原因,并采取相應的措施。

由軟件啟動的中斷程序可作系統中其它程序的服務程序(稱“管理調用”——Supervisorcalls)。在這種情況下,當一個程序而不是一個外設需要服務時,才啟動中斷過程。例如,要在一個文件中查找一個記錄,向另一個程序發送一個信息、請求分配存儲器空間等等。采用軟件中斷過程對于實現系統程序的再定位是十分有利的。這些中斷服務程序都有自己的中斷向量,中斷向量表是預先安排好的,通過這張表,用軟件中斷命令來調用各個程序,這些程序也可以互相調用,也就是根據表中的地址,它們之間可以進行互相通信、互相調用。

聲明:

(一)由于考試政策等各方面情況的不斷調整與變化,本網站所提供的考試信息僅供參考,請以權威部門公布的正式信息為準。

(二)本網站在文章內容來源出處標注為其他平臺的稿件均為轉載稿,免費轉載出于非商業性學習目的,版權歸原作者所有。如您對內容、版權等問題存在異議請與本站聯系,我們會及時進行處理解決。

報名提醒

【考試時間:10月25-26日】

浙江自考服務中心

  • 微信公眾號
  • 考生交流群
  • 微信公眾號 掃一掃加關注微信公眾號

    與考生自由互動、并且能直接與專業老師進行交流解答。

  • 考生交流群 掃一掃加入微信交流群

    與考生自由互動、并且能直接與專業老師進行交流解答。

主站蜘蛛池模板: 久治县| 龙井市| 报价| 弥渡县| 遂川县| 武冈市| 宁明县| 绥棱县| 陆良县| 辽阳县| 大城县| 武冈市| 清丰县| 鹤庆县| 贵州省| 沙河市| 崇义县| 九寨沟县| 香格里拉县| 广丰县| 会昌县| 青州市| 兖州市| 沁阳市| 宜都市| 荣成市| 双鸭山市| 沙河市| 民乐县| 新丰县| 盖州市| 高尔夫| 宜章县| 连云港市| 彰化县| 龙山县| 鲜城| 凤台县| 米泉市| 清苑县| 门源|

關注公眾號

回復“免費資料”領取復習資料

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

man
聯系
微信
wxlogo
掃描
二維碼
反饋建議
反饋
建議
回到頂部
回到
頂部
app
微信客服
 微信公眾號