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

浙江自考網(wǎng)

咨詢熱線

您現(xiàn)在的位置:浙江自考網(wǎng)>復(fù)習(xí)資料 > 正文
自考攻略

2023年4月浙江自考微型計(jì)算機(jī)原理及應(yīng)用復(fù)習(xí)筆記:8086/8088的中斷

時(shí)間:2022-12-29 09:01:02 作者:儲(chǔ)老師

自考助學(xué) 以下自考復(fù)習(xí)資料均由浙江自考網(wǎng)整理并發(fā)布,考生想要了解更多關(guān)于浙江自考報(bào)名、考試、成績查詢、畢業(yè)、歷年真題、常見問答等相關(guān)信息請(qǐng)關(guān)注浙江自考網(wǎng),獲取浙江自考更多信息。


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

聲明:

(一)由于考試政策等各方面情況的不斷調(diào)整與變化,本網(wǎng)站所提供的考試信息僅供參考,請(qǐng)以權(quán)威部門公布的正式信息為準(zhǔn)。

(二)本網(wǎng)站在文章內(nèi)容來源出處標(biāo)注為其他平臺(tái)的稿件均為轉(zhuǎn)載稿,免費(fèi)轉(zhuǎn)載出于非商業(yè)性學(xué)習(xí)目的,版權(quán)歸原作者所有。如您對(duì)內(nèi)容、版權(quán)等問題存在異議請(qǐng)與本站聯(lián)系,我們會(huì)及時(shí)進(jìn)行處理解決。

報(bào)名提醒

【考試時(shí)間:10月25-26日】

浙江自考服務(wù)中心

  • 微信公眾號(hào)
  • 考生交流群
  • 微信公眾號(hào) 掃一掃加關(guān)注微信公眾號(hào)

    與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。

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

    與考生自由互動(dòng)、并且能直接與專業(yè)老師進(jìn)行交流解答。

主站蜘蛛池模板: 广水市| 禹州市| 保康县| 怀宁县| 明光市| 永修县| 富川| 碌曲县| 临汾市| 临邑县| 襄垣县| 罗田县| 夏河县| 阜新市| 中宁县| 嘉义县| 连云港市| 丹寨县| 丹棱县| 芦山县| 贞丰县| 咸阳市| 遵义县| 常德市| 祁门县| 清徐县| 米脂县| 凌云县| 玉环县| 繁峙县| 乐至县| 于都县| 海原县| 射阳县| 贵州省| 历史| 磐石市| 洪雅县| 东莞市| 辛集市| 泰州市|

關(guān)注公眾號(hào)

回復(fù)“免費(fèi)資料”領(lǐng)取復(fù)習(xí)資料

微信公眾號(hào)

微信公眾號(hào)

微信公眾號(hào)

微信交流群

<<點(diǎn)擊收起

在線咨詢

在線咨詢

APP

APP
下載

man
聯(lián)系
微信
wxlogo
掃描
二維碼
反饋建議
反饋
建議
回到頂部
回到
頂部
app
微信客服
 微信公眾號(hào)