復(fù)試試題-微機(jī)原理第7章中斷系統(tǒng)_第1頁
復(fù)試試題-微機(jī)原理第7章中斷系統(tǒng)_第2頁
復(fù)試試題-微機(jī)原理第7章中斷系統(tǒng)_第3頁
復(fù)試試題-微機(jī)原理第7章中斷系統(tǒng)_第4頁
復(fù)試試題-微機(jī)原理第7章中斷系統(tǒng)_第5頁
已閱讀5頁,還剩106頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

大連理工大學(xué)自動(dòng)化系微機(jī)原理第七章中斷系統(tǒng)7.1計(jì)算機(jī)中斷系統(tǒng)7.28086/8088的中斷結(jié)構(gòu)7.3中斷控制器Intel8259A什么是中斷?與生活場景的比較正在看書電話鈴響接電話繼續(xù)看書執(zhí)行程序事件發(fā)生事件處理繼續(xù)執(zhí)行程序中斷處理中斷請求及響應(yīng)實(shí)際場景計(jì)算機(jī)中斷返回7.1計(jì)算機(jī)中斷系統(tǒng)CPU執(zhí)行程序時(shí),由于發(fā)生了某種隨機(jī)的事件(外部或內(nèi)部),引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行一段特殊的服務(wù)程序(稱為中斷服務(wù)程序或中斷處理程序),以處理該事件,該事件處理完后又返回被中斷的程序繼續(xù)執(zhí)行,這一過程稱為中斷。中斷的作用并行操作,提高工作效率CPU與外設(shè)同時(shí)工作,多個(gè)外設(shè)同時(shí)工作。實(shí)現(xiàn)實(shí)時(shí)處理在控制系統(tǒng)中,有些參量要求計(jì)算機(jī)能快速處理,用中斷方式容易實(shí)現(xiàn)。故障處理出現(xiàn)故障,提出中斷申請,要求計(jì)算機(jī)及時(shí)響應(yīng)。中斷源任何能引發(fā)中斷的事件都稱為中斷源,可分為:硬件中斷源:I/O設(shè)備,系統(tǒng)時(shí)鐘,故障源等軟件中斷源:程序中斷指令(INT3),指令運(yùn)行出錯(cuò)(INTO)等8086/8088的外部中斷信號:INTR、NMIINTR——可屏蔽中斷請求,高電平有效,受IF標(biāo)志的控制。IF=1時(shí),執(zhí)行完當(dāng)前指令后CPU對它作出響應(yīng)。NMI——非屏蔽中斷請求,上升沿有效,任何時(shí)候CPU都要響應(yīng)此中斷請求信號。中斷工作過程中斷請求中斷響應(yīng)關(guān)中斷斷點(diǎn)保護(hù)中斷識別現(xiàn)場保護(hù)中斷服務(wù)恢復(fù)現(xiàn)場開中斷中斷返回中斷服務(wù)是進(jìn)行數(shù)據(jù)交換的實(shí)質(zhì)性環(huán)節(jié)外設(shè)通過硬件信號的形式向CPU引腳發(fā)送信號,該信號維持直至被響應(yīng)為止。

滿足一定條件,CPU進(jìn)入中斷響應(yīng)周期CPU每條指令執(zhí)行完將會(huì)檢測中斷輸入引腳;對于可屏蔽中斷請求,CPU應(yīng)處于開中斷狀態(tài);中斷請求時(shí),沒有更高級別的中斷請求發(fā)生;中斷請求應(yīng)保持到被響應(yīng)為止。CPU響應(yīng)中斷后將自動(dòng)關(guān)閉中斷,不經(jīng)用戶打開,CPU將不再受理其他中斷請求。

CPU響應(yīng)中斷后將自動(dòng)保護(hù)斷點(diǎn)地址,以便中斷后繼續(xù)執(zhí)行原程序,并保護(hù)狀態(tài)寄存器。

識別中斷發(fā)生的原因,找到相應(yīng)的中斷服務(wù)程序入口。

對CPU的工作環(huán)境(主要是寄存器)進(jìn)行保護(hù),以便將來恢復(fù)。一般是將其壓入堆棧。

針對不同的中斷源所進(jìn)行的特定的服務(wù),CPU執(zhí)行事先編制好的中斷服務(wù)程序。完成中斷服務(wù)后,CPU應(yīng)返回?cái)帱c(diǎn)去執(zhí)行原來的工作,此時(shí)應(yīng)恢復(fù)原來的工作環(huán)境。

CPU響應(yīng)中斷后,一般會(huì)自動(dòng)關(guān)閉中斷,用戶要主動(dòng)打開,否則,整個(gè)中斷過程中,不會(huì)再響應(yīng)其他中斷利用IRET,CPU會(huì)將斷點(diǎn)從堆棧彈出,于是程序返回?cái)帱c(diǎn)繼續(xù)執(zhí)行原來的程序。中斷系統(tǒng)的功能(一)實(shí)現(xiàn)中斷及返回檢測中斷當(dāng)中斷允許時(shí),CPU在每條指令的最后一個(gè)時(shí)鐘周期檢測中斷請求。響應(yīng)中斷時(shí)保護(hù)斷點(diǎn)和現(xiàn)場

斷點(diǎn)自動(dòng)保護(hù),現(xiàn)場要在中斷服務(wù)程序中保護(hù)斷點(diǎn):CPU響應(yīng)中斷時(shí),會(huì)停止當(dāng)前執(zhí)行程序,轉(zhuǎn)去執(zhí)行中斷處理程序,原程序被打斷的地方斷點(diǎn)地址:中斷處理程序結(jié)束后,返回原程序恢復(fù)執(zhí)行的第一條指令的地址,又稱“返回地址”?,F(xiàn)場是指進(jìn)入中斷服務(wù)程序之前CPU各個(gè)寄存器的狀態(tài)。

中斷服務(wù)完成時(shí)將中斷申請信號撤銷中斷服務(wù)完成后恢復(fù)現(xiàn)場和斷點(diǎn),返回原程序中斷服務(wù)程序返回?cái)帱c(diǎn)中斷處理斷點(diǎn)CS:IP+1正常程序CS:IP繼續(xù)執(zhí)行流程中斷傳送流程返回(二)對中斷進(jìn)行控制對中斷申請進(jìn)行控制中斷傳送是一種效率更高的程序傳送方式進(jìn)行傳送的中斷服務(wù)程序是預(yù)先設(shè)計(jì)好的中斷請求是外設(shè)隨機(jī)向CPU提出的CPU對請求的檢測是有規(guī)律的:一般是在每條指令的最后一個(gè)時(shí)鐘周期采樣中斷請求輸入引腳例1一個(gè)輸入設(shè)備的中斷接口電路CQD+5V160HD0AA

中斷允許觸發(fā)器B

中斷申請觸發(fā)器DCQRB

地址

譯碼

器INTR162HIOWA15~A0IORINTA

緩沖器

緩沖器中斷類型碼(0FH)三態(tài)三態(tài)D7~D0D7~D0EOC外設(shè)電路說明外設(shè)準(zhǔn)備好數(shù)據(jù)后,發(fā)EOC信號(負(fù)脈沖),把數(shù)據(jù)放到接口線上,同時(shí)置“1”中斷申請觸發(fā)器。執(zhí)行如下指令,置中斷允許觸發(fā)器為“1”,開放中斷

MOVAL,01HMOVDX,160HOUTDX,AL若禁止中斷,則執(zhí)行如下指令

MOVAL,00HMOVDX,160HOUTDX,AL當(dāng)INTR為高電平,且CPU中斷開放(IF=1),則CPU響應(yīng)中斷。在中斷響應(yīng)周期,INTA有效,讀取中斷類型碼,清除中斷申請觸發(fā)器。在中斷服務(wù)程序中讀取外設(shè)數(shù)據(jù)

MOVDX,162HINAL,DX對中斷響應(yīng)進(jìn)行控制標(biāo)志寄存器Flag中IF標(biāo)志可控制CPU是否查詢INTR引腳STIIF=1允許中斷CLIIF=0禁止中斷(三)實(shí)現(xiàn)優(yōu)先權(quán)排隊(duì)當(dāng)系統(tǒng)中多個(gè)中斷源同時(shí)發(fā)出中斷請求時(shí),CPU按照重要性和急迫性(中斷優(yōu)先級)擇優(yōu)響應(yīng):不同優(yōu)先級同時(shí)請求時(shí),CPU先響應(yīng)高優(yōu)先級中斷;CPU在處理低優(yōu)先級中斷時(shí),若出現(xiàn)高優(yōu)先級中斷請求,則轉(zhuǎn)去處理高優(yōu)先級中斷(中斷嵌套);CPU在處理高優(yōu)先級中斷時(shí),若出現(xiàn)低優(yōu)先級中斷請求,暫不響應(yīng);CPU在處理中斷時(shí),若出現(xiàn)同級別中斷請求,則等當(dāng)前中斷處理完后,才處理新的請求。(四)尋找中斷源

有中斷申請時(shí)需要查找中斷源,以決定中斷服務(wù)程序入口地址。預(yù)先約定當(dāng)有中斷申請時(shí),則轉(zhuǎn)到固定地址執(zhí)行中斷服務(wù)程序。電路簡單,但一般只能為幾個(gè)中斷源服務(wù)。查詢

在中斷服務(wù)程序中查詢中斷源。向量中斷(應(yīng)答方式)響應(yīng)中斷時(shí),CPU發(fā)中斷響應(yīng)信號,中斷源收到此信號發(fā)出中斷類型碼(中斷向量號),CPU根據(jù)中斷類型碼決定中斷服務(wù)程序入口地址。中斷源查找和中斷優(yōu)先級排隊(duì)的實(shí)現(xiàn)軟件查詢中斷源CPU響應(yīng)中斷后用軟件查詢申請中斷的外設(shè)查詢方法優(yōu)點(diǎn)查詢次序即是優(yōu)先權(quán)次序;省硬件,不需要硬件排隊(duì)電路。缺點(diǎn):轉(zhuǎn)至服務(wù)程序入口時(shí)間長A15A0~譯碼器地址IORINTRD7~D0源ABCDEFGH20H三態(tài)緩沖器中斷申請觸發(fā)器查詢程序

INAL,20HLEABX,BRNTABCIRCLE:SHRAL,1JCGETABADDBX,2ORAL,ALJNZCIRCLEJMPERRORGETAB:JMPCS:[BX]BRNTABDWSUB1,SUB2,SUB3,SUB4DWSUB5,SUB6,SUB7,SUB8CF0DSTMSBLSB鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路(應(yīng)答方式)電路說明每個(gè)接口有一個(gè)中斷允許輸入IEI和中斷允許輸出IEO,只有IEI為高電平時(shí)才允許該接口芯片發(fā)中斷請求;IEO=IEI?INTINT表示該設(shè)備有中斷請求;每個(gè)接口芯片的中斷請求輸出為OC門,具有負(fù)邏輯的“線或”關(guān)系;響應(yīng)中斷時(shí)由INTA從接口讀取中斷矢量。外設(shè)2IEIIEO接口2外設(shè)1IEIIEO接口1SEL1外設(shè)3IEIIEO接口3SEL2SEL3+5VD7~D0INTAINTRIORIOWINTAinCPUINTAINTR外設(shè)1外設(shè)2外設(shè)接口1菊花鏈邏輯電路外設(shè)接口2外設(shè)3外設(shè)接口3≥1菊花鏈邏輯電路菊花鏈邏輯電路┇I(xiàn)REQIREQIREQ中斷確認(rèn)鏈?zhǔn)絻?yōu)先權(quán)排隊(duì)電路(應(yīng)答方式)INTAinINTAin中斷確認(rèn)中斷確認(rèn)中斷優(yōu)先權(quán)編碼電路中斷請求寄存

器中斷服務(wù)寄存

器優(yōu)先權(quán)編碼器優(yōu)先權(quán)編碼器B2B1B0A2A1A0A>B比較器INTRIR0IR1IR2IR3IR4IR5IR6IR7電路說明中斷請求寄存器由IR0~IR7可分別引入8個(gè)外設(shè)的中斷請求。優(yōu)先權(quán)編碼器把當(dāng)前最高優(yōu)先級的中斷輸入進(jìn)行編碼后輸出。中斷服務(wù)寄存器記錄正在服務(wù)的中斷申請。中斷申請的最高級與正在服務(wù)的最高級比較,只有申請級高于服務(wù)級才能提出中斷申請(INT)。7.28086/8088的中斷結(jié)構(gòu)8086中斷8088的中斷系統(tǒng)采用向量中斷機(jī)制能夠處理256個(gè)中斷用中斷類型碼(中斷向量號)0~255區(qū)別可屏蔽中斷還需要借助專用中斷控制器Intel8259A實(shí)現(xiàn)優(yōu)先權(quán)管理8086CPU中斷分為兩類硬件中斷:由外部請求引起的中斷軟件中斷:由指令執(zhí)行引起的中斷非屏蔽中斷源中斷邏輯INTO指令單步中斷除法錯(cuò)誤INTN指令CPUINTRNMI可屏蔽中斷源8259A中斷控制器IR0IR1IR2IR3IR4IR5IR6IR7外設(shè)中斷源

INTA內(nèi)部中斷除法錯(cuò)中斷指令中斷溢出中斷單步中斷外部中斷非屏蔽中斷可屏蔽中斷(一)硬件中斷可屏蔽中斷可屏蔽中斷申請輸入為INTR引腳,高電平有效,該中斷受IF控制,CPU在每條指令的最后一個(gè)T狀態(tài)檢測該引腳。由IF標(biāo)志控制可屏蔽中斷是否允許響應(yīng);中斷類型碼來自外部中斷控制器。CPU響應(yīng)中斷后,使INTA有效,從外設(shè)讀取中斷類型碼??善帘沃袛嘀饕糜谥鳈C(jī)與外設(shè)交換數(shù)據(jù)

8086/8088有256個(gè)中斷類型,用1個(gè)字節(jié)進(jìn)行編碼稱為中斷類型碼,每個(gè)中斷類型碼對應(yīng)4個(gè)字節(jié)的中斷服務(wù)程序入口地址。中斷標(biāo)志IF的狀態(tài)IF=0:可屏蔽中斷不會(huì)被響應(yīng)關(guān)中斷、禁止中斷、中斷屏蔽系統(tǒng)復(fù)位,使IF=0任何一個(gè)中斷被響應(yīng),使IF=0執(zhí)行指令CLI,使IF=0IF=1:可屏蔽中斷會(huì)被響應(yīng)開中斷、允許中斷、中斷開放執(zhí)行指令STI,使IF=1執(zhí)行指令I(lǐng)RET恢復(fù)原IF狀態(tài)明確IF標(biāo)志的狀態(tài)是關(guān)鍵非屏蔽中斷非屏蔽中斷申請輸入為NMI引腳,上升沿有效,該中斷不受CPU控制,中斷類型碼為2(INT2)。非屏蔽中斷一般用于非常事件:PC/XT機(jī)中用于系統(tǒng)板上RAM奇偶錯(cuò);I/O通道奇偶錯(cuò)和8087異常中斷。(二)軟件中斷由于8086/8088內(nèi)部執(zhí)行程序出現(xiàn)異常引起的程序中斷DIV和IDIV指令(INT0)INT指令(INTn)INTO指令(INT4)單步中斷(INT1)

⑴除法錯(cuò)中斷DIV和IDIV指令(INT0)若除數(shù)為0或商超過寄存器所能表達(dá)的范圍,則產(chǎn)生類型為0的軟件中斷,稱為除法錯(cuò)中斷。例如:movbl,0idivbl ;除數(shù)BL=0,產(chǎn)生除法錯(cuò)中斷movax,200hmovbl,1divbl ;商=200H,不能用AL表達(dá) ;產(chǎn)生除法錯(cuò)中斷⑵指令中斷在執(zhí)行中斷調(diào)用指令I(lǐng)NTn時(shí)產(chǎn)生的一個(gè)中斷類型碼為n(0~255)的內(nèi)部中斷,稱為指令中斷其中中斷類型碼為3的指令中斷比較特別(生成一個(gè)字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為斷點(diǎn)中斷例如:DEBUG.EXE調(diào)試程序的運(yùn)行命令G設(shè)置的斷點(diǎn),就是利用INT3指令實(shí)現(xiàn)的⑶溢出中斷若OF=1,則指令I(lǐng)NTO引起類型碼為4的軟件中斷在執(zhí)行溢出中斷指令I(lǐng)NTO時(shí),若溢出標(biāo)志OF為1,則產(chǎn)生一個(gè)中斷類型碼為4的內(nèi)部中斷,被稱為溢出中斷例如:movax,2000haddax,7000h

;2000H+7000H=9000H,溢出:OF=1into ;因?yàn)镺F=1,所以產(chǎn)生溢出中斷⑷單步中斷若單步中斷TF為1,則在每條指令執(zhí)行結(jié)束后產(chǎn)生一個(gè)中斷類型碼為1的內(nèi)部中斷,稱為單步中斷例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實(shí)現(xiàn)對程序的單步調(diào)試PC機(jī)的中斷優(yōu)先順序NMIN軟件中斷INTRTF=1中斷響應(yīng)周期讀中斷類型碼下條指令現(xiàn)行指令I(lǐng)F=1NNNNYYYYY查詢中斷的順序,決定了各種中斷源的優(yōu)先權(quán)軟件中斷除法錯(cuò)中斷指令中斷溢出中斷非屏蔽中斷可屏蔽中斷單步中斷高低NYNYNNNNNYY執(zhí)行指令執(zhí)行完否?取指令I(lǐng)F=1?內(nèi)部中斷?NMI?INTR?TF=1?類型碼=0~255類型碼=2類型碼=1中斷響應(yīng),讀類型碼FLAG入棧TEMP←TFIF=TF=0CS、IP入棧計(jì)算向量表地址高字→CS,低字→IP執(zhí)行中斷服務(wù)程序NMI?TEMP=1?轉(zhuǎn)入中斷服務(wù)程序恢復(fù)CS和IP恢復(fù)FLAGS返回被中斷的程序YYYYNIRET指令的操作8086/8088的中斷處理流程PC機(jī)的中斷向量中斷向量:中斷服務(wù)程序的入口地址(首地址)邏輯地址含有段地址CS和偏移地址IP(32位)。每個(gè)中斷向量的低字是偏移地址、高字是段地址,需占用4個(gè)字節(jié)8086/8088微處理器從物理地址000H開始,依次安排各個(gè)中斷向量,向量號也從0開始8086/8088CPU在內(nèi)存00000H~003FFH的1KB地址空間內(nèi),為256個(gè)中斷建立一個(gè)中斷向量表,中斷向量表就是中斷服務(wù)程序入口地址表。類型255指針除數(shù)為0

單步非屏蔽斷點(diǎn)溢出003FCH00000H00004H00008H0000CH00010HCSIP段地址偏移量每個(gè)中斷類型碼對應(yīng)4個(gè)字節(jié)的程序入口地址,中斷類型碼乘以4便可得到中斷向量表中存放中斷服務(wù)程序入口地址的存儲(chǔ)單元的偏移量。0~4:專用中斷類型5~1FH:保留中斷類型(可修改中斷服務(wù)程序)20H~0FFH:用戶可用中斷類型其中:8~0FH是8個(gè)硬件中斷中斷類型碼為N的中斷向量的物理地址=N×4例:INT21H指令調(diào)用第21號中斷服務(wù)程序,其入口地址存放在中斷向量表中84H~87H的連續(xù)4個(gè)字節(jié)。(21H×4=84H)偏移量低8位偏移量高8位段地址低8位段地址高8位87H86H85H84HIPCSINTR引腳信號說明多個(gè)外設(shè)中斷源通過8259A中斷優(yōu)先級管理器連接到INTR引腳,外設(shè)中斷源的優(yōu)先級由8259A進(jìn)行管理

IR0~IR7優(yōu)先級由高到低,通常對應(yīng)的中斷類型碼為08H~0FH。(IR0~I(xiàn)R7的編號恰好對應(yīng)中斷類型碼的低3位)例:IR0對應(yīng)中斷類型碼08HIR0IR1IR2IR3IR4IR5IR6IR78259AINTINTR8086外設(shè)中斷源1外設(shè)中斷源8IBMPC/AT機(jī)中一般使用兩片8259A級連8259級聯(lián)后可管理15個(gè)外設(shè),只能兩級級聯(lián)優(yōu)先級:01(8……15)3…7

高低IR8~IR15的中斷向量:70H~77HIR0IR1IR2IR3IR4IR5IR6IR7

主片8259AINTRINTRCPUIR8IR9IR10IR11IR12IR13IR14IR15從片8259AINTR中斷響應(yīng)過程中斷檢測

CPU在每條指令執(zhí)行的最后一個(gè)時(shí)鐘周期檢測中斷請求,如果出現(xiàn)以下之一,則進(jìn)入中斷響應(yīng)周期。有軟件中斷有NMI中斷信號有INTR中斷信號,而且CPU允許中斷響應(yīng),即IF=1獲取中斷類型碼進(jìn)入中斷響應(yīng)周期以后,若是INTR,則產(chǎn)生INTA信號,中斷源通過數(shù)據(jù)總線的低8位將中斷類型碼傳送給CPU;若是NMI,則類型碼是2;若程序出錯(cuò)產(chǎn)生中斷,則使用默認(rèn)的類型碼;若是中斷指令,則指令中有類型碼。保護(hù)斷點(diǎn)系統(tǒng)自動(dòng)將標(biāo)志寄存器壓入堆棧,清除TF和IF,并將斷點(diǎn)處的CS和IP壓入堆棧,先壓CS后壓IP。得到中斷向量系統(tǒng)根據(jù)中斷類型碼形成中斷服務(wù)程序的入口地址,轉(zhuǎn)入中斷服務(wù)程序執(zhí)行,每個(gè)中斷都有自己的處理程序。中斷服務(wù)處理進(jìn)入中斷服務(wù)程序后,通常由以下步驟組成保護(hù)現(xiàn)場,開中斷中斷處理關(guān)中斷,恢復(fù)現(xiàn)場,又開中斷用中斷返回指令(IRET)返回中斷返回:從堆棧中恢復(fù)斷點(diǎn)處CS:IP和FLAG內(nèi)部中斷服務(wù)程序編寫內(nèi)部中斷服務(wù)程序與編寫子程序類似利用過程定義偽指令PROC/ENDP第1條指令通常為開中斷指令STI最后用中斷返回指令I(lǐng)RET通常采用寄存器傳遞參數(shù)主程序需要調(diào)用中斷服務(wù)程序調(diào)用前,需要設(shè)置中斷向量設(shè)置必要的入口參數(shù)利用INTn指令調(diào)用中斷服務(wù)程序處理出口參數(shù)例7.1編寫80H號中斷服務(wù)程序,并調(diào)用功能:具有顯示以“0”結(jié)尾字符串的功能,利用INT10H實(shí)現(xiàn)字符顯示字符串緩沖區(qū)首地址為入口參數(shù):

DS:DX(段地址:偏移地址)傳遞參數(shù)光標(biāo)處寫字符(BIOS功能調(diào)用INT10H)功能號:AH=0EH入口參數(shù):AL=字符的ASCII碼;數(shù)據(jù)段intoff dw? ;用于保存偏移地址intseg dw? ;用于保存段基地址intmsg db‘AInstructionInterrupt!’,0dh,0ah,0以“0”結(jié)尾回車、換行;代碼段movax,3580h ;利用DOS功能35H號int21h ;獲取原80H中斷向量movintoff,bx ;保存偏移地址movintseg,es ;保存段基地址獲取中斷向量(DOS功能調(diào)用INT21H)功能號:AH=35H入口參數(shù):AL=中斷向量號出口參數(shù):ES:BX=中斷向量(段地址:偏移地址);設(shè)置新中斷向量pushdsmovdx,offsetnew80h;取中斷程序偏移地址movax,segnew80h;取中斷程序段地址movds,axmovax,2580hint21hpopds設(shè)置中斷向量(DOS功能調(diào)用INT21H)功能號:AH=25H入口參數(shù):AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址);中斷調(diào)用,設(shè)置入口參數(shù):

DS=段地址(已設(shè)置)

DX=偏移地址movdx,offsetintmsg int80h

;調(diào)用80H中斷服務(wù)程序AInstructionInterrupt!程序功能;主程序返回movdx,intoff ;恢復(fù)原中斷向量movax,intsegmovds,ax ;改變DSmovax,2580hint21h ;因緊接著返回DOSmovax,4c00h ;故無需恢復(fù)DSint21h設(shè)置中斷向量(DOS功能調(diào)用INT21H)功能號:AH=25H入口參數(shù):AL=中斷向量號DS:DX=中斷向量(段地址:偏移地址);80H號內(nèi)部中斷服務(wù)程序:;顯示字符串(以“0”結(jié)尾);入口參數(shù):DS:DX=緩沖器首地址new80h proc ;過程定義

sti

;開中斷

pushax ;保護(hù)寄存器

pushbx pushsi movsi,dxnew1: moval,[si];讀取欲一個(gè)顯示字符

cmpal,0;為結(jié)尾“0”,則結(jié)束

jznew2 movbx,0;采用ROM-BIOS功能調(diào)用

movah,0eh int10h incsi;準(zhǔn)備顯示下一個(gè)字符

jmpnew1光標(biāo)處寫字符(BIOS功能調(diào)用INT10H)功能號:AH=0EH入口參數(shù):AL=字符的ASCII碼new2: popsi ;恢復(fù)寄存器

popbx popax

iret;中斷返回new80h endp;過程(中斷服務(wù)程序)結(jié)束AInstructionInterrupt!程序功能7.3中斷控制器INTEL8259A(一)功能簡介8259A是與8086系列CPU兼容的可編程中斷控制器(PIC),用于管理8086/8088的可屏蔽中斷。具有8級優(yōu)先權(quán)控制,通過級聯(lián)可擴(kuò)展至64級每一級中斷都可以屏蔽和允許。中斷響應(yīng)時(shí)提供中斷類型碼。中斷申請可以有電平觸發(fā),也可有邊沿觸發(fā)。中斷響應(yīng)周期,可提供相應(yīng)的中斷向量號有多種工作方式,可通過編程選擇。(二)8259內(nèi)部結(jié)構(gòu)INTAINT數(shù)據(jù)總線

緩沖器讀/寫控制邏輯級連緩沖比較SP/EN控制電路控制邏輯初始化命令

寄存器組操作命令寄存器組

中斷

請求

寄存

器(IRR)IR0IR1IR2IR3IR4IR5IR6IR7

中斷服務(wù)寄存器(ISR)中斷優(yōu)先級分析器中斷屏蔽寄存器

(IMR)D7~D0RDWRCSA0CAS1CAS2CAS0內(nèi)部結(jié)構(gòu)說明中斷請求寄存器IRR保存8條外界中斷請求信號IR0~I(xiàn)R7的請求狀態(tài)Di位為1表示IRi引腳有中斷請求;為0表示無請求中斷服務(wù)寄存器ISR保存正在被8259A服務(wù)著的中斷狀態(tài)Di位為1表示IRi中斷正在服務(wù)中;為0表示沒有被服務(wù)中斷屏蔽寄存器IMR保存對中斷請求信號IR的屏蔽狀態(tài)Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許中斷優(yōu)先級分析器決定中斷申請的優(yōu)先級;控制邏輯中包含兩個(gè)寄存器組初始化命令寄存器組:ICW1~ICW4操作命令寄存器組:OCW1~OCW3級聯(lián)邏輯控制8259A的主從工作方式。D7~D0雙向,三態(tài)數(shù)據(jù)線,可直接與系統(tǒng)總線相連。IR7~IR08個(gè)外部中斷請求輸入引腳,可為高電平有效或上升沿有效。RD讀信號,輸入,低電平有效,若有效則把8259A內(nèi)部寄存器數(shù)據(jù)讀入到CPU。WR寫信號,輸入,低電平有效,若有效則把數(shù)據(jù)寫入到8259A的內(nèi)部寄存器。1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2(三)8259A引腳圖CS片選信號,低電平有效,給8259A分配地址。A0用于選擇8259A內(nèi)部不同寄存器。INT中斷申請線,輸出,高電平有效,8259A的中斷申請輸出引腳(可連接8086的INTR)。INTA輸入,低電平有效,有效時(shí)8259A輸出中斷類型碼1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2CAS2~CAS0級聯(lián)信號線,當(dāng)8259A為主片時(shí)為輸出引腳,從片時(shí)為輸入引腳。收到第一個(gè)INTA時(shí),主片通過這三根線通知有中斷申請的從片在第二個(gè)INTA時(shí)送出中斷類型碼。1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS2SP/EN:在非緩沖工作方式時(shí),SP有效,輸入,決定8259A為主片還是從片。

SP=1表示是主8259A,SP=0表示是從8259A;在緩沖工作方式時(shí),EN有效,輸出,由它打開總線緩沖器。

EN=1表示允許總線緩沖器輸入,

EN=0表示允許總線緩沖器輸出;1234567891011121314CSWRRDD7D6D5D4D3D2D1D0CAS0CAS1GNDIntel8259A2827262524232221201918171615VccA0INTAIR7IR6IR5IR4IR3IR2IR1IR0INTSP/ENCAS28259A與計(jì)算機(jī)的連接(一)8259A單片工作方式的接口電路D7~D0D7~D0RDWRINTINTAA0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7CAS2CAS1CAS0IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7日時(shí)鐘鍵盤保留COM2COM1硬盤軟盤打印機(jī)+5VIORIOWINTRINTAA1A13A15A14A10A12A1174LS3074LS04A9+5VA8A7A6A5+5VCBA74LS138Y1Y0G2AG2BG1電路說明8259A數(shù)據(jù)線與控制線對應(yīng)連接到系統(tǒng)總線;由74LS30(8輸入與非門)和74LS138(三-八譯碼器)對地址線進(jìn)行譯碼決定端口地址,地址為020H~03FH;8086使用低8位數(shù)據(jù)線與8259A傳遞信息。8086的A1接到8259的A0線上,使用偶地址;CAS2CAS1CAS0未接,SP/EN接正電源;地址范圍范圍A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A0

00000000001XXXXX0020H~003FH(二)兩片8259A級聯(lián)工作管理15級中斷+5VD7~D0INT8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ0IRQ1IRQ2IRQ3IRQ4IRQ5IRQ6IRQ7CAS2CAS1CAS0D7~D0CS8259ASP/ENIR0IR1IR2IR3IR4IR5IR6IR7IRQ8IRQ9IRQ10IRQ11IRQ12IRQ13IRQ14IRQ15CAS2CAS1CAS0INTINTA2CS(020H

~03FH)(0A0H~0BFH)INTA1CSINTARDWRA0INTARDWRA0D7~D0實(shí)時(shí)鐘改向INT0A協(xié)處理器CSINTRINTAIORIOWA1說明從片8259A的中斷申請端INT接主片的IR2主片的SP/EN接+5V,從片的SP/EN接地,主從片的CAS2、CAS1、CAS0對應(yīng)連接。主片的端口地址INTA1CS為020H~03FH,從片的端口地址INTA2CS為0A0~0BFH.8086系統(tǒng)主從芯片都用偶地址傳遞信息。三.8259A的工作方式1、設(shè)置優(yōu)先級的方式:(1)全嵌套方式(2)特殊全嵌套方式(3)優(yōu)先級自動(dòng)循環(huán)方式(4)優(yōu)先級特殊循環(huán)方式2、屏蔽中斷源的方式:(1)普通屏蔽方式(2)特殊屏蔽方式3、中斷結(jié)束處理方式(1)中斷自動(dòng)結(jié)束(2)一般的中斷結(jié)束方式(3)特殊的中斷結(jié)束方式4、連接系統(tǒng)總線的方式(1)緩沖方式(2)非緩沖方式5、引入中斷請求的方式(1)邊沿觸發(fā)(2)電平觸發(fā)(3)查詢方式1.中斷優(yōu)先方式與中斷嵌套中斷優(yōu)先方式

兩類優(yōu)先級控制方式:固定優(yōu)先級和循環(huán)優(yōu)先級固定優(yōu)先級方式所有中斷請求IRi的中斷優(yōu)先級固定不變優(yōu)先級排列順序可編程改變加電后8259A的默認(rèn)方式,默認(rèn)優(yōu)先級順序從高到低為IR0~I(xiàn)R7IR7IR6IR5IR4IR3IR2IR1IR07654321032107654最低級最高級最高級最低級優(yōu)先級IR7IR6IR5IR4IR3IR2IR1IR0默認(rèn)優(yōu)先級優(yōu)先級可編程改變循環(huán)優(yōu)先級方式

中斷源輪流處于最高優(yōu)先級,即自動(dòng)中斷優(yōu)先級循環(huán)初始優(yōu)先級順序可用編程改變某中斷請求IRi被處理后,其優(yōu)先級別自動(dòng)降為最低,原來比它低一級的中斷上升為最高級

IR7IR6IR5IR4IR3IR2IR1IR07654321021076543最低級最高級最高級最低級ISR內(nèi)容IR7IR6IR5IR4IR3IR2IR1IR0IR4的服務(wù)結(jié)束以前0101000001000000IR4的服務(wù)結(jié)束以后ISRi中斷嵌套方式在中斷處理過程中允許被更高優(yōu)先級的事件所中斷稱為中斷嵌套。8259A有兩種中斷嵌套方式:普通全嵌套方式(默認(rèn)方式)

一中斷正被處理時(shí),只有更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。特殊全嵌套方式

一中斷正被處理時(shí),允許同級或更高優(yōu)先級的事件可以打斷當(dāng)前的中斷處理過程而被服務(wù)。注:特殊全嵌套僅用于多個(gè)8259A級連時(shí)的主8259A,而不能用于從屬8259A或單8259A系統(tǒng)。D.主8259AIR0IR1IR2IR3IR4IR5IR6IR7一般嵌套方式:從片的INT被主片封鎖,故更高級別的IR0-IR2中斷也無法得到響應(yīng)特殊嵌套方式:因主片不封鎖從片的INT,故級別高的IR0-IR2中斷可以得到響應(yīng)。(但I(xiàn)R3-IR7仍被本從片封鎖)C.假定IR3發(fā)生中斷,并獲得服務(wù)一般嵌套方式:IR4的中斷被服務(wù)時(shí),這些中斷將被封鎖。B.特殊嵌套方式:IR4的中斷被服務(wù)時(shí),只封鎖IR5-IR7。A.INTE.從8259AINTIR0IR1IR2IR3IR4IR5IR6IR7一般全嵌套方式與特殊全嵌套方式的區(qū)別

去CPU8259A使用的優(yōu)先級設(shè)置方式全嵌套方式8259A初始化之后未作其他優(yōu)先級方式的設(shè)置,中斷優(yōu)先級0~7處理,0最高。特殊全嵌套方式基本與全嵌套方式相同,只是處理某一級中斷時(shí),如果有同級的中斷請求,也給予響應(yīng),從而實(shí)現(xiàn)一種對于同級中斷請求的特殊嵌套。一般用于8259A級聯(lián)的系統(tǒng)中,主片工作在特殊全嵌套方式,從片處于其他優(yōu)先級方式。優(yōu)先級自動(dòng)循環(huán)方式多個(gè)中斷源優(yōu)先級相當(dāng)?shù)膱龊?。一個(gè)設(shè)備中斷服務(wù)后,自動(dòng)將優(yōu)先級將為最低。初始化時(shí),最高優(yōu)先級為0。優(yōu)先級特殊循環(huán)方式與優(yōu)先級自動(dòng)循環(huán)方式比,最低優(yōu)先級由編程設(shè)定。如,設(shè)IR5為最低優(yōu)先級,IR6則為最高。2.中斷結(jié)束處理方式當(dāng)某一IRi中斷被服務(wù)時(shí),ISR中的相應(yīng)位ISRi=1。當(dāng)服務(wù)結(jié)束后,則必須清零該ISRi位,即ISRi=0。使ISRi=0是通過向8259A發(fā)出中斷結(jié)束命令(EOI命令)實(shí)現(xiàn)的。三種EOI命令自動(dòng)EOI(AEOI)——(自動(dòng)EOI方式)非指定EOI(NSEOI)——(一般EOI方式)指定EOI(SEOI)——(特殊EOI方式)

AEOI(自動(dòng)EOI方式):在第2個(gè)INTA結(jié)束時(shí),由8259A使ISRi自動(dòng)復(fù)位;因不保留當(dāng)前正在服務(wù)的中斷的狀態(tài),故AEOI不能用于中斷嵌套方式NSEOI(一般EOI方式):由CPU發(fā)出正常EOI命令,該EOI命令使ISRi=1的位中優(yōu)先級最高的那一位復(fù)位。用于普通全嵌套方式

SEOI(特殊EOI方式):非全嵌套方式下,用當(dāng)前的ISR無法確定哪一級中斷為最后響應(yīng)和處理的中斷,所以要采用這種結(jié)束方式。由CPU發(fā)出一條SEOI命令,該EOI命令中指出了所要復(fù)位的ISR的位號。中斷服務(wù)程序┇向從PIC發(fā)EOI命令讀從PIC的ISR全0?向主PIC發(fā)EOI命令YIRET恢復(fù)現(xiàn)場N特殊全嵌套方式下的EOI處理只有當(dāng)從PIC的中斷全部處理完后,才能向主PIC發(fā)EOI命令3.屏蔽中斷源的方式普通屏蔽方式:IMR屏蔽字決定了允許或禁止某位IRi所對應(yīng)的中斷:IMi=1禁止,IMi=0允許。特殊屏蔽方式:提供了允許較低優(yōu)先級的中斷能夠得到響應(yīng)的特殊手段。原理:假定當(dāng)前正在處理IR6,先進(jìn)入特殊屏蔽方式,然后設(shè)置IM6=1。這時(shí),除IR6外的所有中斷請求均能得到響應(yīng)。一般在中斷處理程序中使用。特殊屏蔽方式中只能用SEOI命令結(jié)束中斷。4.中斷觸發(fā)方式邊沿觸發(fā)IRi出現(xiàn)上升沿表示有中斷請求,中斷請求輸入端出現(xiàn)上升沿觸發(fā)信號后,可一直保持高電平電平觸發(fā)IRi出現(xiàn)高電平表示有中斷請求中斷得到響應(yīng)后,輸入端必須及時(shí)撤除高電平,以防不該有的第二次中斷在第1個(gè)INTA結(jié)束前,IRi必須保持高電平

查詢方式設(shè)備通過8259A發(fā)中斷請求信號,但8259A不使用INT信號向CPU發(fā)中斷請求CPU內(nèi)部中斷運(yùn)行觸發(fā)起復(fù)位,禁止外部對CPU的中斷請求CPU使用軟件查詢確認(rèn)中斷源對外設(shè)來講是中斷方式請求服務(wù),對CPU來講是查詢方式確定服務(wù)對象5.連接總線方式緩沖方式多片級聯(lián)的系統(tǒng)中,8259A使用總線驅(qū)動(dòng)器和數(shù)據(jù)總線連接。SP/EN端與總線驅(qū)動(dòng)器的允許端連接,在輸出狀態(tài)字或中斷類型碼時(shí),SP/EN為低電平,用于啟動(dòng)總線驅(qū)動(dòng)器非緩沖觸發(fā)用于單片或片數(shù)很少的級聯(lián)系統(tǒng)中SP/EN作為輸入端,表明8259A的主從關(guān)系6.級聯(lián)工作方式單片8259A可支持8個(gè)中斷源;采用多片8259A級連,可最多支持64個(gè)中斷源。n片8259A可支持7n+1個(gè)中斷源;級連時(shí)只能有一片8259A為主片,其余的均為從片;涉及到的8259A引腳包括:CAS0-CAS2SP/ENIRiINT四.8259A編程字8259A的控制命令分為初始化命令字ICWICW1~I(xiàn)CW4向8259A寫入ICW過程稱為初始化編程操作命令字OCW

OCW1~OCW3向8259A寫入OCW過程稱為操作方式編程(一)初始化命令字ICW1(InitialCommandWord,初始化字):芯片控制初始化命令字

A0=0,D4=1

表示對ICW1編程D0(IC4)D0=1需要ICW4;D0=0不需要ICW4(默認(rèn)ICW4為全0)A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0D1(SNGL)D1=1為單片8259工作方式;D1=0為級聯(lián)工作方式,此時(shí)要用ICW3指明級聯(lián)端D2(ADI)指明8080/8085系統(tǒng)中地址間距,8086系統(tǒng)不用D3(LTIM)D3=1中斷請求是電平觸發(fā)方式;D3=0上升沿觸發(fā)方式。A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0D5~D7(A5~A7)8080/8085系統(tǒng)中斷服務(wù)程序頁面地址,8086系統(tǒng)不用注:初始化命令字一般在初始化8259時(shí)才寫入,而且寫入有嚴(yán)格的順序,先寫ICW1,最后寫ICW4A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0ICW2:中斷類型碼的初始化命令字A0=1,跟在ICW1后表示對ICW2編程T7~T3

為8086系統(tǒng)中的中斷類型碼的高5位,低3位根據(jù)申請端自動(dòng)填充。T2~T0:最低3位為中斷源的序號IRn000~111分別對應(yīng)IR0~I(xiàn)R7由8259A根據(jù)中斷源的序號自動(dòng)填入

例若ICW2=00001000B,則8259A的IR3引腳上的中斷請求的中斷類型碼為00001011即0x0BA01D7D6D5D4D3D2D1D0A15/T7A14/T6A13/T5A12/T4A11/T3A10A9A8ICW3(級聯(lián)控制字):主/從芯片初始化命令字

A0=1,且ICW1的D1=0(SNGL),跟在ICW2表示對ICW3編程主片Si=1表示對應(yīng)的IRi引腳接有從片從片ID2~ID0對應(yīng)從片的標(biāo)識位,ID2~ID0與從片連接到主片的輸入端相對應(yīng)。A0D7D6D5D4D3D2D1D01S7S6S5S4S3S2S1S0A0D7D6D5D4D3D2D1D0100000ID2ID1ID0主片從片ICW3必須與主從片的連接關(guān)系一致:

例如,主片的IR4與從片的INT線連接,主片的ICW3=10H(00010000B),從片的ICW3=04H(00000100B)。中斷響應(yīng)時(shí),主片通過級連線CAS2-CAS0送出被允許中斷的從片標(biāo)識碼,各從片用自己的ICW3與CAS2-CAS0比較,二者一致的從片才可發(fā)送中斷向量碼。ICW4(中斷結(jié)束方式字):方式控制初始化命令字A0=1,且ICW1的D0=1,跟在其他初始化字后表示對ICW4編程D0(pm)

D0=1為8086/8088處理器體系;

D0=0為80/85處理器體系D1(AEOI)

D1=1自動(dòng)結(jié)束中斷方式,在第二個(gè)INTA清ISR中的對應(yīng)位;D1=0非自動(dòng)結(jié)束中斷方式,中斷結(jié)束時(shí)發(fā)EOI命令清ISR中的對應(yīng)位A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmD2(M/S)在緩沖方式下(BUF=1),選擇主片和從片,M/S=1為主片,M/S=0為從片。在非緩沖方式下,由SP/EN引腳設(shè)定主片和從片。D3(BUF)D3=1為緩沖工作方式,SP/EN為緩沖選通信號。單片系統(tǒng)都置1;D3=0為非緩沖工作方式。A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmD4(SFNM)D4=1特殊全嵌套方式,此時(shí)允許同級中斷再次進(jìn)入,一般用于多片級聯(lián)方式;D4=0普通全嵌套方式,禁止同級中斷再次進(jìn)入。A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupm(二)操作命令字

OCW用于設(shè)置8259的工作狀態(tài)在初始化后寫入OCW的寫入順序可任意寫入地址要求:寫入OCW1必須A0=1寫入OCW2,OCW3必須A0=0

OCW1

(OperationCommandWord):中斷屏蔽操作命令字

A0=1表示設(shè)置OCW1Mi=1表示屏蔽IRi輸入中斷請求例屏蔽鍵盤

IN AL,22H ORAL,02H/ANDAL,0FDH OUT22H,ALA0D7D6D5D4D3D2D1D01M7M6M5M4M3M2M1M0OCW2:設(shè)置優(yōu)先級循環(huán)及中斷結(jié)束方式A0=0,且D4D3

=

00,表示對OCW2編程R優(yōu)先權(quán)循環(huán)狀態(tài)

R=1優(yōu)先權(quán)自動(dòng)循環(huán);R=0優(yōu)先權(quán)不循環(huán)SL

設(shè)定標(biāo)志,指明L2、L1、L0是否有效。

SL=1由L2、L1、L0指明中斷號或最低優(yōu)先權(quán)EOI

中斷結(jié)束命令標(biāo)志,為1,非自動(dòng)結(jié)束方式時(shí)清ISi

一般EOI指令為MOVAL,20HOUT20H,ALA0D7D6D5D4D3D2D1D00RSLEOI00L1L0L2RSLEOI001非特殊EOI結(jié)束中斷命令,清除當(dāng)前的中斷響應(yīng)011特殊EOI命令,清除由L2L1L0指示的中斷響應(yīng)101特殊EOI命令,清除當(dāng)前的中斷響應(yīng),優(yōu)先級循環(huán)一次100設(shè)置8259A在中斷自動(dòng)結(jié)束模式下按優(yōu)先級自動(dòng)循環(huán)方式工作000取消8259A在中斷自動(dòng)結(jié)束模式下的優(yōu)先級自動(dòng)循環(huán)工作方式111結(jié)束由L2~L0指示的中斷,并使L2~L0為最低優(yōu)先級110設(shè)定最低優(yōu)先級特殊循環(huán),此時(shí)由L2~L0指出最低優(yōu)先級010無操作3.OCW3:設(shè)置/取消特殊屏蔽方式,設(shè)置中斷查詢方式,讀內(nèi)部寄存器A0=0,且D4D3

=

01,表示對OCW3編程ESMMSMM11設(shè)置特殊屏蔽,只要內(nèi)部IF=1,無優(yōu)先級,未屏蔽中斷申請均可進(jìn)入

10取消特殊屏蔽

0*SMM無任何作用A0D7D6D5D4D3D2D1D000ESMMSMM01RRRISPP=1,設(shè)置8259A為查詢工作方式,此時(shí)8259A不發(fā)INT信號,CPU通過查詢指令決定服務(wù)程序。 查詢得到格式如下表所示I=1表示有中斷請求W2W1W0為當(dāng)前最高優(yōu)先級的中斷請求中斷號A0D7D6D5D4D3D2D1D00W1W0W2IXXXXA0D7D6D5D4D3D2D1D000ESMMSMM01RRRISPP=0,由RR和RIS設(shè)置下一個(gè)讀取的寄存器

RRRIS10在下一個(gè)A0=0端口讀IRR11在下一個(gè)A0=0端口讀ISR

若下一個(gè)A0=1,則讀取IMR寄存器

例:讀取ISR到AL中;讀取IMR到AL中

moval,0BHmoval,0AHout20H,alout20H,alINal,20HINal,22H

A0D7D6D5D4D3D2D1D000ESMMSMM01RRRISP8259A的工作過程1.中斷源通過IR0~I(xiàn)R7向8259A發(fā)中斷請求,使得8259A的中斷請求寄存器IRR的相應(yīng)位置1。2.IRR中經(jīng)中斷屏蔽寄存器IMR允許后的置位位進(jìn)入優(yōu)先權(quán)判別器PR,PR將其中最高優(yōu)先權(quán)的中斷請求從INT輸出,送至CPU的INTR端。3.若CPU處于開中斷狀態(tài),則在當(dāng)前指令執(zhí)行結(jié)束后,啟動(dòng)中斷響應(yīng)總線操作,發(fā)出兩個(gè)負(fù)脈沖作為響應(yīng)信號。4.8259A接收到第一個(gè)負(fù)脈沖,完成如下工作:(1)使ISR相應(yīng)位置1,表示CPU已為該中斷請求服務(wù)。(2)使IRR的相應(yīng)位清0。5.8259A接收到第二個(gè)負(fù)脈沖,將中斷類型號送上數(shù)據(jù)總線。中斷類型號由用戶編程和中斷請求引腳IRi的序號i共同決定(CPU讀取中斷類型號,經(jīng)響應(yīng)過程后,進(jìn)入中斷服務(wù)程序,直到服務(wù)結(jié)束返回)。6.若8259A工作在自動(dòng)結(jié)束中斷方式AEOI,則8259A清除ISR的相應(yīng)位,否則直至中斷服務(wù)結(jié)束,發(fā)出EOI命令,才能使ISR中的相應(yīng)位清0。五.8259A初始化編程舉例(一)8259A初始化編程順序級聯(lián)方式?ICW1ICW2ICW3要ICW4?ICW4NYYN(二)IBMPC/XT機(jī)單片8259A初始化要求:端口地址為20H和22H接收8個(gè)中斷請求信號為邊沿觸發(fā)選擇全嵌套方式,IR0為最高優(yōu)先級,IR7為最低優(yōu)先級,緩沖方式設(shè)定IR0中斷類型碼為08H注:8259A的地址線A0連接到系統(tǒng)地址總線的A1上A0AEOIM/SBUFD7D6D5D4D3D2D1D01000SFNMupmICW4A00IC4SNGLADILTIM1A7A6A5D7D6D5D4D3D2D1D0ICW1A01XXXT3T4T7T6T5D7D6D5D4D3D2D1D0ICW2初始化程序段INTA0_0EQU20HINTA0_1EQU22HMOV

AL,

13H;(00010011B)OUT

INTA0_0,AL;ICW1(邊沿觸發(fā)、單片、寫ICW4)MOV

AL,

08H;(00001000B)OUT

INTA0_1,

AL

;ICW2(IR0中斷類型碼為08H)MOV

AL,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論