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

浙江自考網

咨詢熱線

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

2023年4月浙江自考微型計算機原理及應用復習筆記:8086/8088的中斷

時間:2022-12-29 09:01:02 作者:儲老師

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


8086/8088有一個簡單而靈活的中斷系統,每個中斷都有一個中斷類型碼(Type  Code),以供CPU進行識別,8086/8088最多能處理256種不同的中斷類型。中斷可以由CPU外的硬設備驅動,也可由軟件中斷指令啟動,在某些情況下,也可由CPU自身啟動,8086/8088的中斷源如圖6-21所示。從圖可見8086/8088的中斷源可分為兩類,即外部中斷和內部中斷。
一、外部中斷
8086/8088有兩條中斷請求線——INTR和NMI,8259A(PIC)可供外設向CPU發中斷請求信號。
(一)可屏蔽中斷INTR
可屏蔽中斷請求線INTR通常由Intel8259A(PIC)驅動,該控制器又同需要中斷服務的設備相連,可由軟件命令來控制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(中斷響應)總線周期,如圖6-22所示。如果在INTA周期內出現一個總線保持請求(HOLD——最小方式,或前一單元fix = v ns = "urn:schemas-microsoft-com:vml" />前一單元ferrelative="t" o:spt="75" coordsize="21600,21600"> / ——最大方式),那么在兩個INTA周期結束以前不會接受這個請求)。在8086/8088的最大方式下,在這兩個INTA周期內輸出LOCK信號,以通知其它處理機不能再試圖控制總線。在第一個INTA周期內INTA信號通知8259A,中斷請求已被接受;在第二個INTA周期內INTA信號有效時,8259A必須把請求服務的那個設備的中斷類型碼(0~255)送上數據總線,該中斷類型碼是8259A的初始化過程中由8086/8088寫入的。CPU讀入該中斷類型碼后,由此調用相應的中斷服務程序。
(二)不可屏蔽中斷NMI
不可屏蔽中斷請求信號NMI用來通知CPU,發生了“災難性”的事件,如電源掉電、存儲器讀寫出錯,總線奇偶位出錯等。NMI線上中斷請求是不可屏蔽的(即無法禁止的),而且立即被CPU鎖存,因此NMI是邊沿觸發的,不需要電平觸發。NMI的優先級也比INTR高。不可屏蔽中斷的類型號預定為2,在CPU響應NMI時,不必由中斷源提供中斷類型碼,因此NMI響應也不需要執行總線周期INTA。
CPU識別一個外部中斷請求所需的時間稱為“中斷等待時間”(Interrupt Latency),這取決于執行完現行的指令還需多少個時鐘周期,一般而言,在執行乘法、除法、移位或循環指令時到達的中斷請求,其等待時間最長。
二、內部中斷
內部中斷是通過軟件調用以及在執行指令時發生“異常”而產生的不可屏蔽中斷,包括溢出中斷、除法出錯中斷、單步中斷、INTn指令中斷以及單字節INT3指令中斷。
1.溢出中斷
如果上一條指令使溢出標志OF置“1”,那么在執行溢出中斷指令(1NTO)時,立即產生一個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和IP。因此,當CPU進入單步中斷過程時,它就不處于單步工作方式,而以正常的方式工作。當單步中斷過程結束時,從堆棧中彈出原來的標志內容,使CPU返回單步方式。
單步方式是—種有用的調試工具,它使單步過程成為能逐條指令地觀察系統操作的一個“窗口”。例如單步中斷過程可以在每執行一條指令后打印或顯示寄存器內容、指令指針的值,以及關鍵的存儲器變量等。這樣就能詳細地跟蹤—個程序的具體執行過程,確定問題的所在。
8086/8088沒有直接對TF標志置“1”或置“0”的指令,可以通過修改存放在堆棧中標志內容而改變TF之值。可用PUSHF和POPF指令直接壓入和彈出標志,標志與0100H相“或”就能將TF置“1”,標志與FEFFH相“與”就能將TF清“0”。用這種方法把TF置“1”后,第一個單步中斷將發生在執行單步處理程序中的IRET指令后的第一條指令之后。
如果CPU正處于單步工作方式,,則它對中斷(內部中斷或外部中斷)的處理過程如下:控制傳遞給為處理所出現的那種類型的中斷而指定的程序(標志、CS和IP被壓人堆棧)。但是,在執行該程序的第一條指令之前,將“識別”(recognized)單步中斷,并且控制又傳遞給1型中處理程序(標志、CS和IP被壓入堆棧)。當單步中斷處理程序結束時,控制又返回原先的中斷處理程序。
上述所有內部中斷的特點是:
(1)中斷類型碼或者包含在指令中或者是預先規定的;
(2)不執行INTA總線周期;
(3)除單步中斷外,任何內部中斷都無法禁止;
(4)除單步中斷外,任何內部中斷的優先級都比任何外部中斷的高。8086/8088的中斷優先級如表6-3所示。
三、中斷向量表(中斷指針表)
中斷向量表是存放中斷服務程序入口地址(即“中斷向量”)的表格。它存放在存儲器的最低端,共1024個字節,每4個字節存放一個中斷服務程序的入口地址(一共可存放256個中斷服務程序的入口地址)。較高地址的兩個字節存放中斷程序入口的段基值;較低地址的兩個字節存放入口地址的段內偏移量,這4個單元的最低地址稱為向量地址,其值為對應的中斷類型碼乘4。8086/8088的中斷向量表結構如圖6-23所示。
由圖可見,8086/8088的中斷向量表由三部分組成:專用的5個(0號一4號),保留的27個(5號~31號),可供用戶定義的224個(32號~255號)。“專用的”是指8086/8088系統中統—規定的中斷類型;“保留的”是指為系統開發所保留的中斷類型。
8086/8088在響應中斷以后,先將標志寄存器壓入堆棧,然后將執行一個與段間間接調用(CALL)指令相當的過程來啟動一個中斷過程,該過程中,CPU將CS和IP壓入堆棧,以保存斷點的地址,然后將中斷向量表中相應的4個字節內容放入IP和CS,使控制轉入中斷過程。
如果n個中斷請求同時到達,則CPU將按優先級順序來調用中斷過程。
四、中斷過程
8086/8088對—個中斷過程的基本處理順序見圖6-24。當進入中斷過程肘,CPU把標志寄存器,CS和IP壓入堆棧,并清除TF和IP。在中斷過程中,可以用STI指令重新開放外部中斷,使INTR線上的中斷請求能中斷這個中斷過程。注意,在STI之后的那條指令執行完以后才會真正開放中斷。NMI線上的中斷請求則始終能夠中斷任何外部中斷處理過程。中斷處理過程中出現的軟件中斷或處理機啟動的中斷也能中斷該過程。必須注意的是,一個中斷處理過程中不能再發生該過程正為之服務的中斷。例如,試圖在除法出錯(0型)中斷處理過程中除以零,可能會陷入無窮盡的再入該過程的循環。必須有足夠大的堆棧空間,以便與該系統中可能出現的中斷嵌套的最大深度相適應。
同其它過程一樣,中斷過程也應該把它要使用的任何寄存器的內容在修改前保存起來,并在處理結束前再恢復其內容。中斷過程最好對程序中“關鍵部分”  (這部分被中斷會造成出錯)以外的所有部分都開放外部中斷。若在一個過程中禁止外部中斷的時間過長,就可能丟失INTR線上的中斷請求。
所有的中斷過程都應該以IRET指令結尾,IRET指令總是認為堆棧仍處于進入該過程時的狀態。該指令將棧頂的三個字分別彈出到IP、CS和標志寄存器中,這樣就回到了中斷過程開始前將要執行的那條指令上去。
中斷過程所做的實際處理視應用場合而定,如果中斷過程正為一個外設服務,則它應該向該外設輸出一個命令,命令它撤消中斷請求。然后它可讀出該外設的狀態信息,確定中斷的原因,并采取相應的措施。
由軟件啟動的中斷程序可作系統中其它程序的服務程序(稱“管理調用”——Supervisorcalls)。在這種情況下,當一個程序而不是一個外設需要服務時,才啟動中斷過程。例如,要在一個文件中查找一個記錄,向另一個程序發送一個信息、請求分配存儲器空間等等。采用軟件中斷過程對于實現系統程序的再定位是十分有利的。這些中斷服務程序都有自己的中斷向量,中斷向量表是預先安排好的,通過這張表,用軟件中斷命令來調用各個程序,這些程序也可以互相調用,也就是根據表中的地址,它們之間可以進行互相通信、互相調用。

聲明:

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

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

報名提醒

【考試時間:4月12-13日】

浙江自考服務中心

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

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

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

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

主站蜘蛛池模板: 池州市| 化州市| 邢台市| 鲜城| 九江市| 乌鲁木齐县| 崇州市| 酒泉市| 兰溪市| 科技| 潜江市| 宜春市| 白沙| 闵行区| 遂宁市| 吉林市| 佛冈县| 新和县| 文成县| 怀集县| 三门峡市| 织金县| 东辽县| 乌拉特前旗| 曲水县| 独山县| 新竹市| 酉阳| 桑日县| 南丰县| 苍山县| 溧阳市| 体育| 梁山县| 福建省| 玛纳斯县| 泾源县| 光山县| 桐庐县| 鲜城| 武乡县|

關注公眾號

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

微信公眾號

微信公眾號

微信公眾號

微信交流群

<<點擊收起

在線咨詢

在線咨詢

APP

APP
下載

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