CH 微型計(jì)算機(jī)中斷系統(tǒng)_第1頁(yè)
CH 微型計(jì)算機(jī)中斷系統(tǒng)_第2頁(yè)
CH 微型計(jì)算機(jī)中斷系統(tǒng)_第3頁(yè)
CH 微型計(jì)算機(jī)中斷系統(tǒng)_第4頁(yè)
CH 微型計(jì)算機(jī)中斷系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩142頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

會(huì)計(jì)學(xué)1CH微型計(jì)算機(jī)中斷系統(tǒng)2、中斷的定義CPU正常運(yùn)行程序時(shí),由于CPU的內(nèi)部事件或外設(shè)請(qǐng)求,引起CPU暫時(shí)中斷正在運(yùn)行的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的外設(shè)(或內(nèi)部事件)的服務(wù)程序,服務(wù)程序執(zhí)行完后又返回到原先的程序繼續(xù)執(zhí)行,這一過(guò)程稱為中斷。中斷流程如下頁(yè)圖所示第1頁(yè)/共147頁(yè)第2頁(yè)/共147頁(yè)3、使用中斷的好處提高效率CPU與外設(shè)同時(shí)工作,當(dāng)外設(shè)的數(shù)據(jù)準(zhǔn)備好則向CPU發(fā)中斷請(qǐng)求,CPU響應(yīng)處理。CPU可與多個(gè)外設(shè)同時(shí)工作,從而加快數(shù)據(jù)的傳送速度、提高CPU的效率。實(shí)現(xiàn)實(shí)時(shí)處理現(xiàn)場(chǎng)各種信息,可隨時(shí)發(fā)出中斷請(qǐng)求故障自行處理將計(jì)算機(jī)在運(yùn)行的過(guò)程中常遇到的意外情況,如:電源突跳,存儲(chǔ)器出錯(cuò),運(yùn)算溢出等設(shè)計(jì)成中斷,計(jì)算機(jī)可利用中斷系統(tǒng)自行處理或告警。第3頁(yè)/共147頁(yè)4、與中斷相關(guān)的基本概念中斷源中斷類型號(hào)中斷請(qǐng)求中斷響應(yīng)中斷服務(wù)程序中斷返回中斷向量中斷向量表中斷優(yōu)先級(jí)中斷嵌套中斷屏蔽第4頁(yè)/共147頁(yè)5、中斷系統(tǒng)的基本功能(1)中斷響應(yīng),中斷服務(wù),中斷返回,中斷屏蔽;(2)中斷優(yōu)先級(jí)排隊(duì);(3)中斷嵌套。注意:這些功能是由軟件與硬件共同構(gòu)成的系統(tǒng)完成的。本章討論與8086/8088CPU相配合的中斷系統(tǒng)第5頁(yè)/共147頁(yè)

二、中斷的分類(中斷源的分類)8086/8088可以處理256種不同的中斷。兩類:內(nèi)部中斷和外部中斷。中斷源示意圖如下圖:8259A可屏蔽中斷請(qǐng)求中斷邏輯INTO指令I(lǐng)NTn指令除法出錯(cuò)單步(TF=1)非屏蔽中斷請(qǐng)求8086/8088CPUNMIINTR內(nèi)部中斷外部中斷可屏蔽中斷非屏蔽中斷第6頁(yè)/共147頁(yè)1、外部中斷(硬件中斷)不可屏蔽中斷NMI不能用軟件屏蔽,CPU必須響應(yīng);上升沿觸發(fā);中斷的類型號(hào)為2??善帘沃袛郔NTRIF=1,CPU響應(yīng)中斷;IF=0,CPU不響應(yīng);高電平觸發(fā),高電平維持到CPU響應(yīng)中斷時(shí)結(jié)束;中斷類型號(hào)由中斷控制器8259A或硬件電路提供。第7頁(yè)/共147頁(yè)2、內(nèi)部中斷(軟件中斷)由三種情況引起:由軟中斷指令I(lǐng)NTn引起

INTn指令,類型號(hào)n(0-255)。由CPU運(yùn)算錯(cuò)誤引起除法錯(cuò)中斷:類型號(hào)0溢出中斷:類型號(hào)4,由INTO指令引起的中斷;第8頁(yè)/共147頁(yè)2、內(nèi)部中斷(軟件中斷)(續(xù))由調(diào)試程序debug設(shè)置的中斷單步中斷:類型號(hào)1,TF=1時(shí)產(chǎn)生(當(dāng)前指令需執(zhí)行完);Debug狀態(tài)下的T命令執(zhí)行時(shí)產(chǎn)生;斷點(diǎn)中斷:類型號(hào)3,INT3指令引起的中斷,屬于軟件中斷Debug狀態(tài)下由G命令設(shè)置,相當(dāng)于是在程序的某個(gè)位置設(shè)置了一條INT3。第9頁(yè)/共147頁(yè)引腳

INTR、INTA#、NMI指令

INTn、INTO、IRET三、與中斷有關(guān)的引腳和指令第10頁(yè)/共147頁(yè)

不同類型的中斷處理過(guò)程略有不同,本節(jié)所介紹的內(nèi)容主要針對(duì)可屏蔽中斷的處理過(guò)程??善帘沃袛嗵幚磉^(guò)程步驟:中斷請(qǐng)求中斷響應(yīng)保護(hù)現(xiàn)場(chǎng)轉(zhuǎn)入執(zhí)行中斷服務(wù)子程序恢復(fù)現(xiàn)場(chǎng)中斷返回9-2中斷處理過(guò)程第11頁(yè)/共147頁(yè)1、CPU響應(yīng)可屏蔽中斷的條件(1)外設(shè)提出中斷申請(qǐng);(2)本中斷未被中斷控制器屏蔽;(3)本中斷優(yōu)先級(jí)最高;(4)CPU允許中斷;一、CPU響應(yīng)可屏蔽中斷過(guò)程第12頁(yè)/共147頁(yè)2、CPU響應(yīng)可屏蔽中斷的過(guò)程CPU在每條指令的最后一個(gè)T周期,檢測(cè)INTR,若為高電平,且IF=1,則CPU響應(yīng)中斷。響應(yīng)過(guò)程中自動(dòng)依次完成以下工作:CPU向外設(shè)發(fā)兩個(gè)/INTA,外設(shè)收到第2個(gè)/INTA后,立即通過(guò)數(shù)據(jù)線給CPU送中斷類型號(hào)。CPU從數(shù)據(jù)線上讀取中斷類型號(hào)將Flags內(nèi)容入棧保護(hù)現(xiàn)行程序的控制標(biāo)志及其運(yùn)行結(jié)果產(chǎn)生的狀態(tài)標(biāo)志。CPU響應(yīng)中斷的過(guò)程第13頁(yè)/共147頁(yè)關(guān)中斷(清IF和TF)為了防止在進(jìn)入中斷處理,但并未執(zhí)行中斷程序這段時(shí)間內(nèi)又響應(yīng)新的中斷。保護(hù)斷點(diǎn)將當(dāng)前指令的下一條指令的CS和IP入棧,使中斷處理完成后能正確的回到原程序處繼續(xù)執(zhí)行。轉(zhuǎn)入相應(yīng)的中斷服務(wù)子程序;中斷返回從堆棧中彈出斷點(diǎn)的地址(IP和CS)和Flags的內(nèi)容,返回主程序的斷點(diǎn)處,繼續(xù)執(zhí)行主程序。CPU響應(yīng)中斷的過(guò)程第14頁(yè)/共147頁(yè)確定中斷源的方法:查詢中斷和矢量中斷。查詢中斷:一種軟件查詢法,中斷響應(yīng)后,啟動(dòng)中斷查詢程序,依次查詢哪個(gè)外設(shè)申請(qǐng)了中斷,檢測(cè)以后,轉(zhuǎn)到此設(shè)備預(yù)先設(shè)置的中斷服務(wù)程序處執(zhí)行。這種中斷處理過(guò)程稱為查詢中斷。

特點(diǎn):速度慢,且后檢測(cè)的設(shè)備服務(wù)機(jī)會(huì)少。矢量中斷:中斷響應(yīng)后,外設(shè)中斷接口電路將中斷類型號(hào)送給CPU,CPU根據(jù)中斷類型號(hào)找到對(duì)應(yīng)的中斷服務(wù)程序的入口地址送入CS或IP,然后轉(zhuǎn)入相應(yīng)的中斷服務(wù)程序處執(zhí)行。這種中斷處理過(guò)程稱為矢量中斷,也叫向量中斷。

特點(diǎn):速度快。二、中斷向量表第15頁(yè)/共147頁(yè)1、中斷向量表中斷向量:中斷服務(wù)程序的入口地址。中斷向量表:中斷服務(wù)程序的入口地址的內(nèi)存表。8086在存儲(chǔ)器最低的1KB(00000H~003FFH)空間內(nèi),存放256個(gè)中斷的中斷向量。每個(gè)類型號(hào)的中斷向量占4字節(jié)

高2字節(jié)存放段基址,低2字節(jié)存放偏移地址按照中斷類型號(hào)的順序依次將其中斷向量存在1K的內(nèi)存表中,格式如下:

第16頁(yè)/共147頁(yè)中斷類型號(hào)n與中斷向量的地址關(guān)系:n×4=中斷向量地址(4n和4n+1)→IP

(4n+2和4n+3)→CS第17頁(yè)/共147頁(yè)【例】某中斷的類型號(hào)為68H,中斷的操作過(guò)程如下:步驟分析:取中斷類型號(hào)68H;計(jì)算中斷向量地址68H*4=1A0H;取中斷入口地址的偏移地址送入IP,段地址送入CS;轉(zhuǎn)向中斷服務(wù)程序;中斷返回到INT68H指令的下一條指令。第18頁(yè)/共147頁(yè)類型69H中斷向量A0002050類型67H中斷向量中斷處理程序STIPUSHDS…..….IRET2050INT68HMOVAX,00:19C0:1A00:1A20:1A4A000IPCSA000:2050向量地址=68H×4=1A0H①②③④⑤中斷操作過(guò)程圖示第19頁(yè)/共147頁(yè)2、中斷向量(中斷入口地址)的設(shè)置概念將中斷服務(wù)程序的入口地址置入中斷類型號(hào)所對(duì)應(yīng)的中斷向量表中。兩種方法用指令設(shè)置用DOS功能調(diào)用設(shè)置第20頁(yè)/共147頁(yè)用指令設(shè)置中斷服務(wù)程序的入口地址表MOVAX,0MOVES,AXMOVBX,N*4MOVAX,OFFSETINTRADMOVES:[BX],AXMOVAX,SEGINTRADMOVES:[BX+2],AXSTI

…..INTRAD:PUSHAX

…..IRETPUSHDSMOVAX,0MOVDS,AXMOVBX,N*4MOVAX,OFFSETINTRADMOV[BX],AXMOVAX,SEGINTRADMOV[BX+2],AXPOPDSSTI

…..INTRAD:PUSHAX

…..IRET第21頁(yè)/共147頁(yè)利用DOS功能調(diào)用設(shè)置中斷服務(wù)程序的入口地址表第22頁(yè)/共147頁(yè)

……

PUSHDSMOVAX,SEGINTRAD;

MOVDS,AXMOVDX,OFFSETINTRADMOVAL,NMOVAH,25HINT21H

POPDS

……利用DOS功能調(diào)用設(shè)置中斷服務(wù)程序的入口地址表第23頁(yè)/共147頁(yè)注意:為了避免直接使用中斷向量的絕對(duì)地址,一般利用DOS功能調(diào)用INT21H設(shè)置或取出中斷向量。應(yīng)用時(shí)一般在設(shè)置自己的中斷向量時(shí),應(yīng)先保存原中斷向量,再設(shè)置新的中斷向量,在程序結(jié)束前恢復(fù)原中斷向量。第24頁(yè)/共147頁(yè)【例】利用DOS功能設(shè)置中斷向量和取中斷向量。

MOVAL,N;取中斷向量,并存中斷向量

MOVAH,35HINT21H

PUSHESPUSHBXPUSHDSMOVAX,SEGINTRAD;設(shè)中斷向量

MOVDS,AXMOVDX,OFFSETINTRADMOVAL,NMOVAH,25HINT21HPOPDS……

POPDX;恢復(fù)原中斷

POPDSMOVAL,NMOVAH,25HINT21H

……INTRAD:……IRET第25頁(yè)/共147頁(yè)3、中斷類型號(hào)的獲取矢量中斷中,中斷入口地址依賴中斷類型號(hào),中斷型號(hào)獲取方法:對(duì)于專用中斷:除法出錯(cuò)、單步中斷、不可屏蔽中斷、斷點(diǎn)中斷和溢出中斷,由CPU分別提供中斷類型號(hào)0~4;對(duì)于用戶自己確定的軟件中斷INTn,類型號(hào)由n決定;對(duì)于INTR引腳上的中斷:由硬件電路設(shè)計(jì)產(chǎn)生中斷類型號(hào)可用8259A獲取中斷類型號(hào)第26頁(yè)/共147頁(yè)三、中斷服務(wù)子程序1、中斷服務(wù)子程序特點(diǎn)為”遠(yuǎn)”過(guò)程(類型為FAR)要用IRET指令返回2、中斷服務(wù)子程序一般結(jié)構(gòu)形式保護(hù)現(xiàn)場(chǎng)(PUSHreg’s)

開(kāi)中斷(STI)

進(jìn)行中斷處理關(guān)中斷(CLI)

恢復(fù)現(xiàn)場(chǎng)(POPreg’s)

中斷返回(IRET)

第27頁(yè)/共147頁(yè)【總結(jié)】中斷處理過(guò)程中軟件及硬件各自完成的功能歸納1.主程序中的初始化(1)設(shè)置中斷向量(2)設(shè)置8259的中斷屏蔽寄存器的中斷屏蔽位(3)設(shè)置CPU中斷允許標(biāo)志位IF(開(kāi)中斷STI)2.硬件(外設(shè)接口)和CPU自動(dòng)完成(1)外設(shè)向CPUINTR端發(fā)出請(qǐng)求(2)CPU發(fā)兩個(gè)/INTA給外設(shè)(3)CPU取中斷類型號(hào)n(4)CPU自動(dòng)將PSW,CS,IP內(nèi)容壓入堆棧第28頁(yè)/共147頁(yè)(5)清除IF,TF,禁止外部中斷和單步中斷(6)從中斷向量表中取(4n)地址中內(nèi)容→IP,取(4n+2)地址中內(nèi)容→CS(7)轉(zhuǎn)向中斷服務(wù)子程序3.中斷服務(wù)子程序【注意】(1)對(duì)重復(fù)前綴的指令作為一條處理。(2)遇到STI和IRET,要執(zhí)行兩條后,再響應(yīng)中斷。(3)CPU自動(dòng)清除IF,TF位,在中斷服務(wù)程序不允許產(chǎn)生中斷,如需要?jiǎng)t必須開(kāi)中斷。第29頁(yè)/共147頁(yè)設(shè)計(jì)一個(gè)能接收一個(gè)中斷源的外圍電路,用8088CPU?!纠康?0頁(yè)/共147頁(yè)

主程序初始化將中斷服務(wù)程序的入口地址裝入中斷向量表

……

PUSHDSMOVDX,OFFSETINTER1

MOVAX,SEG

INTER1

MOVDS,AXMOVAL,80HMOVAH,25HINT21HPOPDS……可屏蔽中斷處理程序INTER1PROCFARPUSHAX;保護(hù)現(xiàn)場(chǎng)STI;開(kāi)中斷以便;允許多重中斷...;中斷處理POPAX;恢復(fù)現(xiàn)場(chǎng)IRET;返回主程序INTER1ENDP

第31頁(yè)/共147頁(yè)CPU處理中斷的一般原則:多個(gè)中斷源同時(shí)向CPU請(qǐng)求中斷,CPU由中斷優(yōu)先級(jí)排隊(duì)決定,先響應(yīng)優(yōu)先級(jí)高的中斷請(qǐng)求。級(jí)別不同的中斷同時(shí)發(fā)生時(shí),由高到低依次處理。級(jí)別相同的中斷同時(shí)發(fā)生時(shí),按事先設(shè)定的次序處理當(dāng)CPU正在處理中斷時(shí),有更高優(yōu)先級(jí)別的中斷請(qǐng)求,并且IF=1,CPU能響應(yīng)更高級(jí)別的中斷請(qǐng)求,而屏蔽掉低級(jí)的中斷請(qǐng)求,形成中斷嵌套,或稱為多重中斷。9-3中斷優(yōu)先級(jí)和中斷嵌套第32頁(yè)/共147頁(yè)1、不同級(jí)別中斷優(yōu)先級(jí)順序計(jì)算機(jī)中的中斷源,優(yōu)先級(jí)從高到低的順序如下:(1)內(nèi)部中斷(除法錯(cuò),INTO,INTn)(2)NMI(3)INTR(4)單步中斷一、中斷優(yōu)先級(jí)第33頁(yè)/共147頁(yè)2、可屏蔽中斷的優(yōu)先級(jí)設(shè)定方法軟件查詢中斷優(yōu)先級(jí)查詢程序的次序,決定了外設(shè)優(yōu)先級(jí)別的高低,先測(cè)試的中斷源優(yōu)先級(jí)別最高,依次下降。硬件查詢優(yōu)先方式——菊花鏈法矢量中斷優(yōu)先級(jí)設(shè)置一般是采用中斷優(yōu)先級(jí)控制器(如8259A)。第34頁(yè)/共147頁(yè)可屏蔽中斷的優(yōu)先級(jí)設(shè)定--軟件查詢中斷優(yōu)先級(jí)≥1中斷請(qǐng)求寄存器PORTINTR0INTR1INTR2INTR3INTR4INTR5INTR6INTR7CPUINTR緩沖器.....D7~D0譯碼第35頁(yè)/共147頁(yè)軟件查詢中斷優(yōu)先級(jí)0號(hào)申請(qǐng)中斷1號(hào)申請(qǐng)中斷保護(hù)現(xiàn)場(chǎng)中斷處理程序...恢復(fù)現(xiàn)場(chǎng)中斷返回0號(hào)外設(shè)服務(wù)程序1號(hào)外設(shè)服務(wù)程序YYNN中斷服務(wù)子程序處理流程第36頁(yè)/共147頁(yè)移位法XORAL,ALINAL,PORT

RCRAL,1

JCINTR0

RCRAL,1JCINTR1

……INTR0:……

……INTR1:……軟件查詢中斷優(yōu)先級(jí)中斷服務(wù)子程序片斷測(cè)試法XORAL,ALINAL,PORT

TESTAL,01H

JNZINTR0

TESTAL,02HJNZINTR1

……INTR0:……

……INTR1:……第37頁(yè)/共147頁(yè)可屏蔽中斷的優(yōu)先級(jí)設(shè)定--硬件查詢優(yōu)先方式(菊花鏈法)第38頁(yè)/共147頁(yè)矢量中斷優(yōu)先權(quán)控制器的原理圖可屏蔽中斷的優(yōu)先級(jí)設(shè)定--矢量中斷優(yōu)先級(jí)中斷服務(wù)寄存器中斷類型寄存器優(yōu)先級(jí)管理邏輯中斷請(qǐng)求寄存器中斷屏蔽寄存器由中斷請(qǐng)求決定IR0IR1IR2IR7第39頁(yè)/共147頁(yè)中斷嵌套:當(dāng)CPU正在處理中斷時(shí),有更高優(yōu)先級(jí)別的中斷請(qǐng)求,并且IF=1,CPU能響應(yīng)更高級(jí)別的中斷請(qǐng)求,而屏蔽掉低級(jí)的中斷請(qǐng)求以8259A為例介紹,8259A在完全嵌套優(yōu)先級(jí)工作方式下,中斷優(yōu)先級(jí)的順序?yàn)椋篒R0、IR1……IR7。二、中斷嵌套第40頁(yè)/共147頁(yè)下面是一個(gè)中斷嵌套的例子第41頁(yè)/共147頁(yè)【說(shuō)明】主程序必須有開(kāi)中斷指令,使IF=1,才能響應(yīng)中斷。進(jìn)入中斷處理程序時(shí),系統(tǒng)自動(dòng)關(guān)中斷,在中斷服務(wù)程序中必須有STI開(kāi)中斷指令,這樣才可以允許其它中斷進(jìn)入實(shí)現(xiàn)中斷嵌套。中斷結(jié)束返回前要有EOI中斷結(jié)束命令,用來(lái)清除中斷服務(wù)寄存器中的對(duì)應(yīng)位,允許低級(jí)中斷進(jìn)入。最后有中斷返回指令I(lǐng)RET,使程序返回到被中斷的程序的斷點(diǎn)處。第42頁(yè)/共147頁(yè)中斷處理程序中如果沒(méi)有STI指令,中斷處理中不會(huì)受其它中斷影響,在執(zhí)行IRET指令后,因?yàn)樽詣?dòng)返回中斷斷點(diǎn)及中斷標(biāo)志寄存器PSW的內(nèi)容,當(dāng)IF的值為1,系統(tǒng)便能開(kāi)放中斷。一個(gè)正在執(zhí)行的中斷處理程序,中斷服務(wù)寄存器相應(yīng)位置“1”,在開(kāi)中斷(IF=1)的情況下,能夠被優(yōu)先級(jí)高于它的中斷源中斷。但如果中斷處理中提前發(fā)出了EOI命令,則清除了正在執(zhí)行的中斷服務(wù),中斷服務(wù)寄存器置“1”位被清0,允許響應(yīng)同級(jí)或低級(jí)的中斷申請(qǐng)。但這種情況要盡量避免,防止重復(fù)嵌套,使優(yōu)先級(jí)高的中斷不能及時(shí)服務(wù),因此一般EOI結(jié)束命令放在中斷返回指令I(lǐng)RET前面。第43頁(yè)/共147頁(yè)設(shè)系統(tǒng)有兩個(gè)外部中斷源,類型號(hào)分別是40H、41H。試用鏈?zhǔn)浇Y(jié)構(gòu)實(shí)現(xiàn)8086中斷系統(tǒng)的擴(kuò)展。要求:a.畫(huà)出實(shí)際電路。b.編寫(xiě)程序,實(shí)現(xiàn)不同的中斷能轉(zhuǎn)入相應(yīng)的服務(wù)程序入口處。【例】第44頁(yè)/共147頁(yè)解:a.畫(huà)出實(shí)際電路第45頁(yè)/共147頁(yè)...MOVDX,0FFSETINTER1MOVAX,SEGINTER1

MOVDS,AXMOVAL,40H

MOVAH,25H

INT21H...b.主程序

MOVDX,0FFSETINTER2MOVAX,SEGINTER2

MOVDS,AXMOVAL,41H

MOVAH,25H

INT21H第46頁(yè)/共147頁(yè)中斷服務(wù)程序INTER1PROCFARPUSHAX;保護(hù)現(xiàn)場(chǎng)

STI

;開(kāi)中斷,以實(shí)現(xiàn)多重中斷....POPAX;恢復(fù)現(xiàn)場(chǎng)IRETINTER1ENDPINTER2PROCFARPUSHAX;保護(hù)現(xiàn)場(chǎng)

STI

;開(kāi)中斷,以實(shí)現(xiàn)多重中斷....POPAX;恢復(fù)現(xiàn)場(chǎng)IRETINTER2ENDP第47頁(yè)/共147頁(yè)主要內(nèi)容:功能和引腳內(nèi)部結(jié)構(gòu)8259A的中斷管理方式8259A的編程方式8259A的中斷級(jí)聯(lián)及舉例9-4可編程中斷控制器8259A第48頁(yè)/共147頁(yè)1、主要功能(1)具有8優(yōu)先級(jí)控制,通過(guò)級(jí)聯(lián)可以擴(kuò)展到64級(jí)優(yōu)先級(jí)控制;(2)每一級(jí)中斷可由程序單獨(dú)屏蔽或允許;(3)可提供中斷類型號(hào)傳送給CPU;(4)可以通過(guò)編程選擇多種不同工作方式。一、功能和引腳第49頁(yè)/共147頁(yè)2、引腳第50頁(yè)/共147頁(yè)D7~D0:雙向數(shù)據(jù)線,三態(tài),與系統(tǒng)的數(shù)據(jù)總線相連。IR7~IR0:外設(shè)的中斷請(qǐng)求信號(hào)輸入端,輸入;中斷級(jí)聯(lián)時(shí),連接8259A從片INT端。

RD#:讀命令信號(hào),輸入,低電平有效,用來(lái)控制

數(shù)據(jù)由8259A讀到CPU。WR#:寫(xiě)命令信號(hào),輸入,低電平有效,用來(lái)控制

數(shù)據(jù)由CPU寫(xiě)到8259A。CS#:片選信號(hào),輸入,連譯碼器輸出。第51頁(yè)/共147頁(yè)A0:選擇8259A的兩個(gè)端口,輸入,連低位地址線。INT:向CPU發(fā)出的中斷請(qǐng)求信號(hào),輸出與CPU的INTR端相連。INTA#:CPU給8259A的中斷響應(yīng)信號(hào),輸入;8259A要求兩個(gè)負(fù)脈沖的中斷響應(yīng)信號(hào);第1個(gè)是CPU響應(yīng)中斷的信號(hào);第2個(gè)結(jié)束后,CPU讀取8259送的中斷類型號(hào)第52頁(yè)/共147頁(yè)CAS2~CAS0:雙向級(jí)聯(lián)信號(hào)線作主片時(shí),為輸出;作從片時(shí),為輸入與SP#/EN#配合實(shí)現(xiàn)8259A級(jí)聯(lián)SP#/EN#:編程/雙向使能緩沖

輸入時(shí):決定本片8259A是主片還是從片:SP#/EN#

=1,則為主片;SP#/EN#

=0

,則為從片。

輸出時(shí):?jiǎn)?dòng)8259A到CPU之間的數(shù)據(jù)總線驅(qū)動(dòng)器輸入還是輸出,由8259A的工作方式?jīng)Q定:緩沖方式:SP#/EN#為輸出;非緩沖方式:SP#/EN#為輸入。第53頁(yè)/共147頁(yè)二、內(nèi)部結(jié)構(gòu)級(jí)聯(lián)緩沖器/比較器控制電路數(shù)據(jù)總線緩沖器讀/寫(xiě)控制電路中斷服務(wù)寄存器(ISR)優(yōu)先級(jí)管理邏輯(PR)中斷請(qǐng)求寄存器(IRR)中斷屏蔽寄存器(IMR)IR0IR1IR7RDINTWRSP/ENCSA0D7~D0CAS0CAS1CAS2INTA第54頁(yè)/共147頁(yè)1、數(shù)據(jù)總線緩沖器

8259A與系統(tǒng)數(shù)據(jù)總線的接口,8位、雙向、三態(tài)傳送信息種類:

(1)控制字(2)狀態(tài)信息(3)中斷類型號(hào)2、讀/寫(xiě)控制電路

讀寫(xiě)控制電路接收CPU送來(lái)的讀/寫(xiě)命令RD#、WR#,片選信號(hào)CS#及端口選擇信號(hào)A0,用于控制8259A與CPU之間的信息傳送。第55頁(yè)/共147頁(yè)8259A的讀寫(xiě)功能第56頁(yè)/共147頁(yè)3、級(jí)聯(lián)緩沖/比較器

8259A和系統(tǒng)的連接有兩種方式:(1)緩沖方式多片8259A級(jí)聯(lián)的系統(tǒng)中使用,作為輸出端當(dāng)EN#=0時(shí),控制數(shù)據(jù)從8259A送到CPU當(dāng)EN#=1時(shí),控制數(shù)據(jù)從CPU送到8259A(2)非緩沖方式單片8259A或少量8259A級(jí)聯(lián)時(shí)使用,作為輸入端控制8259A作為主片還是從片:

SP#=1,為主片;SP#=0,為從片

單片8259A時(shí),SP#接高電平第57頁(yè)/共147頁(yè)4、中斷請(qǐng)求寄存器IRR8位寄存器,存放外部輸入的中斷請(qǐng)求信號(hào)IR7~IR0;當(dāng)某個(gè)IR端有中斷請(qǐng)求時(shí),IRR相應(yīng)的某位置1;當(dāng)中斷請(qǐng)求被響應(yīng)時(shí),IRR的相應(yīng)位清0。

5、中斷屏蔽寄存器IMR

8位寄存器,用來(lái)存放各級(jí)中斷請(qǐng)求的屏蔽信息。

若IMR第i位為1,則IRi中斷申請(qǐng)被屏蔽若IMR第i位為0,則IRi中斷申請(qǐng)被允許6、優(yōu)先級(jí)判別器PR對(duì)保存在IRR中的中斷請(qǐng)求進(jìn)行優(yōu)先級(jí)識(shí)別,送出最高優(yōu)先級(jí)的中斷請(qǐng)求到CPU和ISR中去。第58頁(yè)/共147頁(yè)7、中斷服務(wù)寄存器ISR8位寄存器,保存正處理的中斷請(qǐng)求信號(hào);CPU響應(yīng)后,由第一個(gè)信號(hào)將ISR寄存器中的相應(yīng)位置“1”;中斷返回前,由中斷結(jié)束命令EOI將其清0。沒(méi)進(jìn)行中斷服務(wù)的ISR各位為0。8、控制電路根據(jù)IRR和IMR的情況,根據(jù)PR判定優(yōu)先級(jí),控制8259A內(nèi)部各部分協(xié)調(diào)工作,主要功能如下:控制8259A向CPU發(fā)INT信號(hào)和接收;控制ISR相應(yīng)位置1,IRR相應(yīng)位清0;控制8259A送中斷類型號(hào)。第59頁(yè)/共147頁(yè)三、8259A的中斷管理方式8259A有多種工作方式,是通過(guò)編程來(lái)設(shè)置的。1、8259A的編程結(jié)構(gòu)8259A的中斷管理方式是通過(guò)控制字來(lái)設(shè)置的。

初始化命令字寫(xiě)入寄存器ICW1~ICW4,只能設(shè)定1次。

操作命令字寫(xiě)入寄存器OCW1~OCW3,用來(lái)對(duì)中斷處理過(guò)程進(jìn)行控制,在系統(tǒng)運(yùn)行過(guò)程中,操作命令字可進(jìn)行多次設(shè)置。第60頁(yè)/共147頁(yè)譯碼器IR0IR1IR2IR3IR4IR5IR6IR7當(dāng)前中斷服務(wù)寄存器優(yōu)先級(jí)裁決器中斷請(qǐng)求寄存器中斷屏蔽寄存器ICW1(芯片控制)ICW2(類型)ICW3(主/從)ICW4(方式控制)OCW3OCW1OCW2D0~D7AD0~AD7CAS2CAS0CAS1A08088連A08086連A1地址總線INTRINTWRINTARDCSSP/NE第61頁(yè)/共147頁(yè)2、優(yōu)先級(jí)設(shè)置方式(1)完全嵌套方式默認(rèn)方式;中斷優(yōu)先級(jí)固定,分0~7級(jí),其中IR0最高,IR7最低;允許中斷嵌套(只允許高級(jí)中斷低級(jí));可用普通EOI、自動(dòng)AEOI結(jié)束中斷,一般用普通EOI。(2)特殊全嵌套方式與(1)基本相同,區(qū)別在于允許同級(jí)中斷請(qǐng)求進(jìn)入;主要用于8259A級(jí)聯(lián)時(shí),主片的優(yōu)先級(jí)設(shè)定;(3)優(yōu)先級(jí)自動(dòng)循環(huán)方式(4)優(yōu)先級(jí)特殊循環(huán)方式第62頁(yè)/共147頁(yè)3、中斷結(jié)束方式中斷處理結(jié)束時(shí)發(fā)送中斷的結(jié)束命令EOI,使ISR寄存器中對(duì)應(yīng)位清“0”。不同時(shí)刻使ISR中對(duì)應(yīng)位清“0”,對(duì)應(yīng)著不同的中斷結(jié)束方式。(1)普通EOI結(jié)束方式中斷返回前,CPU向8259A傳送EOI結(jié)束命令,將ISR中優(yōu)先級(jí)最高位清0,用于完全嵌套工作方式;

EOI結(jié)束命令要放在IRET前;(2)特殊EOI結(jié)束方式CPU向8259A發(fā)特殊EOI結(jié)束命令,命令中將當(dāng)前要清除的中斷級(jí)別也傳給8259A。此時(shí)8259A將ISR寄存器中指定級(jí)別的對(duì)應(yīng)位清“0”。(3)自動(dòng)EOI結(jié)束方式CPU發(fā)第二個(gè)INTA脈沖后,8259A自動(dòng)將ISR寄存器中對(duì)應(yīng)位清“0”;容易引起重復(fù)嵌套,不建議用。第63頁(yè)/共147頁(yè)4、循環(huán)優(yōu)先級(jí)的循環(huán)方法根據(jù)中斷結(jié)束方式不同,優(yōu)先級(jí)循環(huán)又分為三種:(1)普通EOI循環(huán)方式中斷結(jié)束后,將ISR中優(yōu)先級(jí)最高的位清0,此級(jí)賦予最低級(jí),最高級(jí)為其下一級(jí),其余類推。(2)特殊EOI循環(huán)方式中斷結(jié)束后,將ISR中由L2~L0給定級(jí)別相應(yīng)的位清0,此級(jí)賦予最低級(jí),最高級(jí)為其下一級(jí),其余類推。(3)自動(dòng)EOI循環(huán)方式CPU發(fā)第二個(gè)INTA脈沖后,將ISR寄存器中對(duì)應(yīng)位清“0”;并按照普通EOI循環(huán)方式改變優(yōu)先級(jí)。第64頁(yè)/共147頁(yè)5、中斷源屏蔽方式可以對(duì)中斷請(qǐng)求單獨(dú)屏蔽,有兩種方式:(1)普通屏蔽方式通過(guò)操作命令字OCW1將IMR中某一位或某幾位置“1”,可將對(duì)應(yīng)位的中斷請(qǐng)求屏蔽掉。(2)特殊屏蔽方式屏蔽本級(jí)中斷,允許高級(jí)或低級(jí)中斷進(jìn)入,通過(guò)OCW3進(jìn)行設(shè)置。第65頁(yè)/共147頁(yè)6、中斷請(qǐng)求引入方式(1)邊沿觸發(fā)方式8259A的IRi端以上升沿作為中斷請(qǐng)求信號(hào)。(2)電平觸發(fā)方式8259A的IRi端以高電平作為中斷請(qǐng)求信號(hào)。注意:

當(dāng)中斷響應(yīng)后,中斷輸入端的高電平必須及時(shí)撤出。(3)中斷查詢方式第66頁(yè)/共147頁(yè)四、8259A的編程方法分為兩步:初始化編程:由CPU向8259A送初始化命令字ICW。在8259A開(kāi)始正常工作前,必須寫(xiě)初始化命令字使其處于開(kāi)始狀態(tài)。操作命令編程:

由CPU向8259A送操作命令字OCW,可以在8259A初始化后,根據(jù)需要在程序的任何地方寫(xiě)入。第67頁(yè)/共147頁(yè)1、初始化命令字(1)ICW1

——芯片控制初始化命令字IC4SNGL0LTIM1A5A6A70D0D1D2D3D4D5D6D7A0ICW1的地址

1:需要ICW40:不設(shè)ICW4

1:8259A單片方式

0:8259A級(jí)聯(lián)方式ICW1

的標(biāo)志位8080/8085用觸發(fā)方式1:高電平觸發(fā)

0:上跳沿觸發(fā)例7-13IBMPC/XT系統(tǒng)初始化中,設(shè)ICW1=13H,表示系統(tǒng)中8259A為單片方式,上升沿觸發(fā),要求設(shè)置ICW4。指令為:

MOVAL,13HOUT20H,AL第68頁(yè)/共147頁(yè)(2)ICW2——設(shè)置中斷類型號(hào)初始化命令字

中斷類型號(hào)基值,即IR0的類型號(hào)。其中低3位初始時(shí)為0,高5位由用戶設(shè)定。工作過(guò)程中,低3位值由IR0~IR7中響應(yīng)哪級(jí)中斷(對(duì)應(yīng)000~111)來(lái)確定。000T3T4T5T6T71D0D1D2D3D4D5D6D7A0中斷類型的高5位例7-14

在IBMPC/XT系統(tǒng)中,T7~T3=00001,所以對(duì)應(yīng)8個(gè)中斷的類型號(hào)為08H~0FH。端口地址為21H。設(shè)置ICW2的指令為:

MOVAL,8OUT21H,AL第69頁(yè)/共147頁(yè)(3)ICW3——標(biāo)識(shí)主片/從片初始化命令字8259A主片格式:S0S1S2S3S4S5S6S71D0D1D2D3D4D5D6D7A00:表示IRi端上未接8259A從片1:表示IRi端上接有8259A從片Si=ID0ID1ID2000001D0D1D2D3D4D5D6D7A08259A從片格式:從片8259A的識(shí)別地址第70頁(yè)/共147頁(yè)8259A→CPU00----從片CPU→8259A1EN輸出1----主片1從片0主片1SP輸入×0SP/ENM/SBUF1:8086/8088方式0:8080/8085方式1:中斷自動(dòng)結(jié)束0:非自動(dòng)結(jié)束1:特殊全嵌套方式0:完全嵌套方式

PMAEOIM/SBUFSFNM0001D0D1D2D3D4D5D6D7A0非緩沖方式0緩沖方式/從片10緩沖方式/主片11(4)ICW4——方式控制初始化命令字第71頁(yè)/共147頁(yè)ICW設(shè)置的順序:寫(xiě)ICW1寫(xiě)ICW2SNGL=1?寫(xiě)ICW3IC4=1?寫(xiě)IWC4YNNY地址A0=0A0=1A0=1A0=1第72頁(yè)/共147頁(yè)ICW功能:設(shè)定觸發(fā)形式:電平、上升沿;設(shè)定工作方式:?jiǎn)纹?、?jí)聯(lián);設(shè)定中斷類型號(hào)基值;設(shè)定優(yōu)先級(jí)方式;設(shè)定中斷結(jié)束方式。第73頁(yè)/共147頁(yè)2、8259A的操作命令字及編程(1)OCW1——中斷屏蔽操作命令字用于設(shè)置和讀出中斷屏蔽寄存器的內(nèi)容,必須在ICW之后寫(xiě)入M0M1M2M3M4M5M6M71D0D1D2D3D4D5D6D7A01:屏蔽由IRi引入的中斷請(qǐng)求0:允許IRi端中斷請(qǐng)求引入Mi=例7-18

設(shè)某中斷系統(tǒng)要求屏蔽IR3,IR5,8259A編程指令為:

MOVAL,00101000BOUT21H,AL第74頁(yè)/共147頁(yè)RSLEOI操作功能001一般EOI結(jié)束命令011特殊EOI結(jié)束命令101自動(dòng)循環(huán)優(yōu)先級(jí)的一般結(jié)束命令100設(shè)置優(yōu)先級(jí)自動(dòng)循環(huán)方式命令000結(jié)束優(yōu)先級(jí)自動(dòng)循環(huán)方式的命令111設(shè)置特殊優(yōu)先級(jí)循環(huán)的EOI結(jié)束命令110設(shè)置特殊優(yōu)先級(jí)循環(huán)方式命令010無(wú)效優(yōu)先級(jí)固定0優(yōu)先級(jí)循環(huán)1不發(fā)結(jié)束命令0發(fā)結(jié)束命令1L2L1L0無(wú)效0L2L1L0有效1L1L0L200EOISLRA00標(biāo)志位111IR7110IR6101IR5100IR4011IR3010IR2001IR1000IR0L2L1L0最低優(yōu)先級(jí)編碼(2)OCW2設(shè)置8259A的優(yōu)先權(quán)循環(huán)方式和中斷結(jié)束方式。第75頁(yè)/共147頁(yè)(3)OCW3——特殊屏蔽方式和查詢方式命令字

設(shè)定特殊屏蔽方式和中斷查詢的工作方式;設(shè)置讀取8259A的IRR和ISR寄存器的內(nèi)容。第76頁(yè)/共147頁(yè)3、編程小結(jié)ICW在程序初始化時(shí)寫(xiě)入,要按順序且只能設(shè)定1次OCW在初始化命令字之后,可根據(jù)需要在程序的任何位置去設(shè)置,可設(shè)置多次。ICW1、OCW2、OCW3寫(xiě)入8259A偶地址端口,用D4D3位區(qū)分;ICW2、ICW3、ICW4和OCW1寫(xiě)入8259A奇地址端口,用順序區(qū)分。第77頁(yè)/共147頁(yè)五、8259A的中斷級(jí)聯(lián)思考:最多級(jí)聯(lián)64級(jí),需要幾片8259A?如果4片8259A,可管理多少級(jí)中斷?一片8259A管理8級(jí)中斷,當(dāng)申請(qǐng)中斷的外設(shè)多于8級(jí)時(shí),可以將8259A級(jí)聯(lián)使用,圖7-14給出了兩級(jí)級(jí)聯(lián)的例子,第一級(jí)為8259A主片,第二級(jí)為8259A從片,主片可接1~8片從片,這樣最多可以管理64級(jí)中斷源。(9片)(29級(jí))第78頁(yè)/共147頁(yè)外部中斷請(qǐng)求+5VCAS2CAS0CAS1A0RDSP/NEIR7IR6IR5IR4IR3IR2IR1IR0INTWRINTAD0~D7CS從8259ACAS2CAS0CAS1A0RDSP/NEIR7IR6IR5IR4IR3IR2IR1IR0INTWRINTAD0~D7CS主8259A外部中斷請(qǐng)求例7-21

某系統(tǒng)中兩片8259A采用中斷級(jí)聯(lián)方式組成中斷系統(tǒng),從片的INT端連主片的IR3端,若當(dāng)前主片從IR1,IR5端引入兩個(gè)中斷請(qǐng)求,中斷類型號(hào)為31H,35H。中斷服務(wù)程序的段基址為1000H,偏移地址分別為2000H及3000H。從片IR4,IR5端引入中斷請(qǐng)求,類型號(hào)為44H和45H。中斷服務(wù)程序基址2000H,偏移地址為3600H和4500H。第79頁(yè)/共147頁(yè)(1)設(shè)置中斷向量將4個(gè)中斷源的入口地址寫(xiě)入中斷向量表

MOVAX,1000H ;送段地址

MOVDS,AXMOVDX,2000H ;送偏移地址

MOVAL,31H ;中斷類型號(hào)

MOVAH,25HINT21H

MOVDX,3000H ;送偏移地址

MOVAL,35H ;中斷類型號(hào)

INT21H第80頁(yè)/共147頁(yè)

MOVAX,2000H ;送段地址

MOVDS,AXMOVDX,3600H ;送偏移地址

MOVAL,44H ;中斷類型號(hào)

MOVAH,25HINT21HMOVDX,4500H ;送偏移地址

MOVAL,45H ;中斷類型號(hào)

INT21H第81頁(yè)/共147頁(yè)(2)主片8259A初始化編程

8259A主片端口地址為FFC8H和FFC9H

MOVAL,11H;定義ICW1,主片級(jí)聯(lián)使用,邊沿觸發(fā);要設(shè)ICW4

MOVDX,0FFC8HOUTDX,ALMOVAL,30H;定義ICW2,中斷類型號(hào)30H~37HMOVDX,0FFC9HOUTDX,ALMOVAL,08H;定義ICW3,IR3端接從片的INT端

OUTDX,ALMOVAL,11H;定義ICW4,特殊全嵌套方式,非緩沖方式

OUTDX,AL;非自動(dòng)EOI結(jié)束方式

MOVAL,0D5H;定義OCW1,允許IR1,IR3,IR5中斷,其余屏蔽

OUTDX,AL第82頁(yè)/共147頁(yè)(3)從片8259A初始化編程

8259A從片端口地址為FFCAH和FFCBH

MOVAL,11H;定義ICW1,級(jí)聯(lián)使用邊沿觸發(fā),要設(shè)ICW4MOVDX,0FFCAHOUTDX,AL

MOVAL,40H;定義ICW2,引入中斷類型號(hào)40H~47HMOVDX,0FFCBHOUTDX,ALMOVAL,03H;定義ICW3,從片接在主片的IR3端

OUTDX,AL

MOVAL,01H;定義ICW4,特殊全嵌套方式,非緩沖方式

OUTDX,AL;非自動(dòng)EOI結(jié)束方式

MOVAL,0CFH;定義OCW1,允許IR4,IR5中斷,其余屏蔽

OUTDX,AL第83頁(yè)/共147頁(yè)(4)中斷的結(jié)束編程無(wú)論對(duì)主片8259A或從片8259A,操作命令字可根據(jù)需要在操作過(guò)程中設(shè)置,OCW2命令字定義中斷結(jié)束方式時(shí),通常放在中斷服務(wù)子程序中。主片的中斷結(jié)束命令為:

MOVAL,20H;定義OCW2,普通EOI結(jié)束方式

MOVDX,0FFC8HOUTDX,AL從片的中斷結(jié)束命令為:

MOVAL,20H;定義OCW2,普通EOI結(jié)束方式

MOVDX,0FFCAHOUTDX,AL第84頁(yè)/共147頁(yè)小結(jié)主要內(nèi)容:概述:中斷過(guò)程、基本概念、使用中斷好處、中斷分類中斷處理過(guò)程(可屏蔽中斷)響應(yīng)中斷條件及過(guò)程中斷向量表、中斷向量的設(shè)置、中斷類型號(hào)的來(lái)源可屏蔽中斷優(yōu)先級(jí)設(shè)定方法、中斷嵌套過(guò)程可編程中斷控制器8259A重點(diǎn)掌握基本概念、基本過(guò)程、8259A級(jí)聯(lián)管理中斷級(jí)數(shù)計(jì)算及簡(jiǎn)單應(yīng)用。第85頁(yè)/共147頁(yè)P(yáng)3021、2、4、7、8、9課后練習(xí)第86頁(yè)/共147頁(yè)8086CPU中斷系統(tǒng)最多可管理

個(gè)不同中斷源,由IF標(biāo)志控制響應(yīng)的稱為

中斷。8259A主要用于

接口設(shè)計(jì);管理30級(jí)中斷,至少需要

片8259A。256可屏蔽中斷5第87頁(yè)/共147頁(yè)00057H00059H0005AH0005BH0005CH00058H下左圖所示為8086中斷向量表中的部分內(nèi)容,填空寫(xiě)出對(duì)應(yīng)該中斷源的中斷類型號(hào)及其中斷處理程序的首地址。答:中斷類型號(hào):

;中斷處理程序首地址:

。10H

20H

30H

40H

50H

60H第88頁(yè)/共147頁(yè)8086/8088CPU的中斷分成

兩大類,8086系統(tǒng)中硬件中斷可分為

兩種。8086系統(tǒng)最多能識(shí)別

種不同類型的中斷,每種中斷在中斷向量表中分配有

個(gè)字節(jié)單元,用以指示中斷服務(wù)程序的入口地址。8086提供的可接受外部中斷請(qǐng)求信號(hào)的引腳是

。兩種請(qǐng)求信號(hào)的不同之處在于

。采用級(jí)聯(lián)方式,用9片8259A可管理

級(jí)中斷。外部中斷內(nèi)部中斷可屏蔽中斷非屏蔽中斷2564INTRNMI是否可被屏蔽64第89頁(yè)/共147頁(yè)寫(xiě)出下列中斷類型的中斷優(yōu)先級(jí),按順序排列。①單步中斷,②除法出錯(cuò),③可屏蔽中斷,④不可屏蔽中斷。答:除法出錯(cuò),不可屏蔽中斷,可屏蔽中斷,單步中斷。第90頁(yè)/共147頁(yè)什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088的微機(jī)系統(tǒng)中,中斷類型碼和中斷向量之間有什么關(guān)系?答:處理機(jī)可處理的每種中斷的編號(hào)為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機(jī)自動(dòng)尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個(gè)默認(rèn)的內(nèi)存區(qū)域。8086系統(tǒng)中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節(jié)內(nèi)容即為中斷向量。第91頁(yè)/共147頁(yè)寫(xiě)出兩種8086中斷向量表的建立方法。(略)使用指令,使用DOS功能調(diào)用說(shuō)明8086CPU軟中斷和調(diào)用子程序過(guò)程的異同。答:相同點(diǎn):二者都是在需要時(shí),用戶用相應(yīng)的指令實(shí)現(xiàn)不同點(diǎn):調(diào)用子程序時(shí),指令已經(jīng)指明子程序的入口地址,而軟中斷則需要根據(jù)指令中提供的中斷類型號(hào),查中斷向量表才能得到中斷服務(wù)程序的入口地址;調(diào)用子程序時(shí),系統(tǒng)只是保護(hù)斷點(diǎn)處的地址,而軟中斷,系統(tǒng)不僅保護(hù)斷點(diǎn)處的地址,而且還保存PSW寄存器的內(nèi)容。第92頁(yè)/共147頁(yè)8086CPU中斷系統(tǒng)最多可管理

個(gè)不同中斷源,由IF標(biāo)志控制響應(yīng)的稱為

中斷。8259A主要用于

接口設(shè)計(jì);管理30級(jí)中斷,至少需要

片8259A。256可屏蔽中斷5第93頁(yè)/共147頁(yè)00057H00059H0005AH0005BH0005CH00058H下左圖所示為8086中斷向量表中的部分內(nèi)容,填空寫(xiě)出對(duì)應(yīng)該中斷源的中斷類型號(hào)及其中斷處理程序的首地址。答:中斷類型號(hào):

;中斷處理程序首地址:

。10H

20H

30H

40H

50H

60H第94頁(yè)/共147頁(yè)8086/8088CPU的中斷分成

兩大類,8086系統(tǒng)中硬件中斷可分為

兩種。8086系統(tǒng)最多能識(shí)別

種不同類型的中斷,每種中斷在中斷向量表中分配有

個(gè)字節(jié)單元,用以指示中斷服務(wù)程序的入口地址。8086提供的可接受外部中斷請(qǐng)求信號(hào)的引腳是

。兩種請(qǐng)求信號(hào)的不同之處在于

。采用級(jí)聯(lián)方式,用9片8259A可管理

級(jí)中斷。外部中斷內(nèi)部中斷可屏蔽中斷非屏蔽中斷2564INTRNMI是否可被屏蔽64第95頁(yè)/共147頁(yè)寫(xiě)出下列中斷類型的中斷優(yōu)先級(jí),按順序排列。①單步中斷,②除法出錯(cuò),③可屏蔽中斷,④不可屏蔽中斷。答:除法出錯(cuò),不可屏蔽中斷,可屏蔽中斷,單步中斷。第96頁(yè)/共147頁(yè)什么是中斷類型碼、中斷向量、中斷向量表?在基于8086/8088的微機(jī)系統(tǒng)中,中斷類型碼和中斷向量之間有什么關(guān)系?答:處理機(jī)可處理的每種中斷的編號(hào)為中斷類型碼。中斷向量是指中斷處理程序的入口地址,由處理機(jī)自動(dòng)尋址。中斷向量表是存放所有類型中斷處理程序入口地址的一個(gè)默認(rèn)的內(nèi)存區(qū)域。8086系統(tǒng)中,中斷類型碼乘4得到向量表的入口,從此處讀出4字節(jié)內(nèi)容即為中斷向量。第97頁(yè)/共147頁(yè)寫(xiě)出兩種8086中斷向量表的建立方法。(略)說(shuō)明8086CPU軟中斷和調(diào)用子程序過(guò)程的異同。答:相同點(diǎn):二者都是在需要時(shí),用戶用相應(yīng)的指令實(shí)現(xiàn)不同點(diǎn):調(diào)用子程序時(shí),指令已經(jīng)指明子程序的入口地址,而軟中斷則需要根據(jù)指令中提供的中斷類型號(hào),查中斷向量表才能得到中斷服務(wù)程序的入口地址;調(diào)用子程序時(shí),系統(tǒng)只是保護(hù)斷點(diǎn)處的地址,而軟中斷,系統(tǒng)不僅保護(hù)斷點(diǎn)處的地址,而且還保存PSW寄存器的內(nèi)容。第98頁(yè)/共147頁(yè)考試時(shí)間:2013.1.6上午8:00-10:00

請(qǐng)?zhí)崆?0分鐘到考場(chǎng)

考試地點(diǎn):西廊201

考試形式:閉卷+開(kāi)卷考前答疑:1月4號(hào)-5號(hào)上午8:30-11:30下午2:00-5:00基礎(chǔ)實(shí)驗(yàn)樓B508第99頁(yè)/共147頁(yè)課程內(nèi)容第1章緒論第2章8086系統(tǒng)結(jié)構(gòu)第3章8086的尋址方式和指令系統(tǒng)第4章匯編語(yǔ)言程序設(shè)計(jì)第5章存儲(chǔ)器第6章I/O接口第7章可編程外圍接口芯片8255A及應(yīng)用第8章可編程計(jì)數(shù)器/定時(shí)器8253及應(yīng)用第9章微型計(jì)算機(jī)中斷系統(tǒng)第100頁(yè)/共147頁(yè)CH1基礎(chǔ)知識(shí):系統(tǒng)概述、預(yù)備知識(shí)CH2CH5CH6分述CPU、存儲(chǔ)器、I/O接口電路知識(shí)CH3CH4軟件知識(shí):尋址方式、指令系統(tǒng)、程序設(shè)計(jì)等CH7CH8可編程接口芯片8255A、8253CH9中斷系統(tǒng)存儲(chǔ)器CPUI/O接口地址總線AB數(shù)據(jù)總線DB控制總線CBI/O設(shè)備I/O總線控制總體框架難點(diǎn):軟硬件結(jié)合第101頁(yè)/共147頁(yè)一、微型計(jì)算機(jī)系統(tǒng)組成二、相關(guān)術(shù)語(yǔ)三、常用數(shù)制及其相互間的轉(zhuǎn)換四、碼制五、溢出判斷六、BCD編碼及常用字符的ASCII碼第一章緒論第102頁(yè)/共147頁(yè)微處理器存儲(chǔ)器I/O接口總線硬件系統(tǒng)軟件系統(tǒng)微型計(jì)算機(jī)系統(tǒng)微型計(jì)算機(jī)(主板)外設(shè)ALU寄存器控制器鍵盤(pán)、鼠標(biāo)顯示器軟驅(qū)、硬盤(pán)、光驅(qū)打印機(jī)、掃描儀系統(tǒng)軟件應(yīng)用軟件一、微型計(jì)算機(jī)系統(tǒng)組成第103頁(yè)/共147頁(yè)

位、字節(jié)、字內(nèi)存單元的地址和內(nèi)容內(nèi)存容量及常用單位內(nèi)存中字?jǐn)?shù)據(jù)的存儲(chǔ)格式二、相關(guān)術(shù)語(yǔ)第104頁(yè)/共147頁(yè)非十→

按權(quán)展開(kāi),再按十進(jìn)制求和十→非十整數(shù)部分:除以基數(shù),取余,至商為0;最先得最低位小數(shù)部分:乘以基數(shù),取整;至小數(shù)為0,最先得高位二←→十六用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)注意:位數(shù)不夠時(shí)要補(bǔ)0三、常用數(shù)制及其相互間的轉(zhuǎn)換第105頁(yè)/共147頁(yè)n位二進(jìn)制數(shù)均用于表示數(shù)值本身大小。四、碼制無(wú)符號(hào)數(shù)在計(jì)算機(jī)中的表示機(jī)器數(shù)常用的表示方法有三種:原碼、反碼和補(bǔ)碼注:正數(shù)的原碼、反碼、補(bǔ)碼相同;負(fù)數(shù)表示不同。

掌握:定義及求解方法

有符號(hào)數(shù)在計(jì)算機(jī)中的表示--機(jī)器數(shù)8位二進(jìn)制數(shù)的表示范圍無(wú)符號(hào)數(shù):0~

255

原碼:-127~+127反碼:-127~+127補(bǔ)碼:-128~+127第106頁(yè)/共147頁(yè)方法1:異號(hào)相加—不會(huì)溢出。同號(hào)相加—可能溢出:同號(hào)相加時(shí),結(jié)果符號(hào)與加數(shù)符號(hào)相反則溢出;方法2:雙高位判別法兩個(gè)帶符號(hào)二進(jìn)制數(shù)相加或相減時(shí),若

C7C6=1則結(jié)果產(chǎn)生溢出。C7為最高位的進(jìn)(借)位;C6為次高位的進(jìn)(借)位。2、有符號(hào)數(shù)運(yùn)算溢出判斷五、溢出判斷1、無(wú)符號(hào)數(shù)運(yùn)算溢出判斷第107頁(yè)/共147頁(yè)用4位二進(jìn)制數(shù)編碼一位十進(jìn)制數(shù)。

壓縮BCD非壓縮BCD

例:15.6的壓縮BCD為:00010101.0110BCD六、BCD編碼及常用字符的ASCII碼

1、BCD碼2、常用字符的ASCII碼數(shù)字0~9(30H~39H)大寫(xiě)字母‘A’~’Z’(41H~5A)小寫(xiě)字母‘a(chǎn)’~’z’(61H~7AH)第108頁(yè)/共147頁(yè)第二章8086系統(tǒng)結(jié)構(gòu)一、8086CPU的內(nèi)部結(jié)構(gòu)二、寄存器結(jié)構(gòu)三、各標(biāo)志位的名稱和含義四、常用引腳及兩種工作模式五、8086存儲(chǔ)器組織六、堆棧的概念及操作過(guò)程七、8086CPU時(shí)序第109頁(yè)/共147頁(yè)一、8086CPU的內(nèi)部結(jié)構(gòu)1、8086CPU主要特性(數(shù)據(jù)線、地址線,尋址的范圍)2、8086CPU內(nèi)部按功能可分為兩部分:BIU(總線接口部件)EU(執(zhí)行部件)掌握BIU、EU的功能、組成部分第110頁(yè)/共147頁(yè)目的變址寄存器

DestinationIndexSIDIBPSPAX

累加器

AccumulatorBX基數(shù)寄存器BaseCX計(jì)數(shù)寄存器CountDX數(shù)據(jù)寄存器DataAHBHCHDHALBLCLDLIPFlagsDSESSSCS數(shù)據(jù)段寄存器DataSegment附加段寄存器ExtraSegment堆棧段寄存器StackSegment代碼段寄存器CodeSegment狀態(tài)標(biāo)志寄存器ProgramStatusWord指令指針寄存器InstructionPointer變址寄存器段寄存器控制寄存器通用寄存器源變址寄存器

SourceIndex基址指針寄存器

BasePointer堆棧指針寄存器

StackPointer指針寄存器數(shù)據(jù)寄存器8086CPU

寄存器組二、寄存器結(jié)構(gòu)第111頁(yè)/共147頁(yè)狀態(tài)標(biāo)志:存放運(yùn)算結(jié)果的特征6個(gè)狀態(tài)標(biāo)志位(CF,PF,AF,ZF,SF,OF)控制標(biāo)志:控制某些特殊操作3個(gè)控制標(biāo)志位(TF,IF,DF)標(biāo)志位寄存器Flags具體格式:三、標(biāo)志位的名稱和含義第112頁(yè)/共147頁(yè)1、8086CPU芯片:40引腳,部分引腳采用分時(shí)復(fù)用技術(shù);2、8086CPU有兩種工作模式:最小模式:只有8086CPU一個(gè)處理器(單機(jī)系統(tǒng))最大模式:有兩個(gè)或多個(gè)微處理器,系統(tǒng)中所需要的控制信號(hào)由總線控制器8288提供(多機(jī)系統(tǒng))3、常用引腳信號(hào)A19~A16、AD15~AD0、M/IO#、ALE、BHE#RD#、WR#、

NMI、INTR、INTA#

、MN/MX#四、常用引腳及兩種工作模式第113頁(yè)/共147頁(yè)五、8086存儲(chǔ)器組織1、存儲(chǔ)器地址的分段管理分段管理的原因兩種地址邏輯地址:軟件設(shè)計(jì)時(shí)采用;段地址:偏移地址物理地址:CPU送到地址總線上的20位地址;存儲(chǔ)器的絕對(duì)地址;物理地址=段基址×16+偏移地址。物理地址的實(shí)現(xiàn):BIU中的地址加法器2、8086存儲(chǔ)器的分體結(jié)構(gòu)奇地址存儲(chǔ)體與高8位數(shù)據(jù)線相連BHE#偶地址存儲(chǔ)體

與低8位數(shù)據(jù)線相連

A0字?jǐn)?shù)據(jù)的存儲(chǔ)—小地址格式奇地址單元中讀取一個(gè)字,需要訪問(wèn)2次存儲(chǔ)器第114頁(yè)/共147頁(yè)1、堆棧的概念、特點(diǎn)

先進(jìn)后出以字為單位2、堆棧指令

PUSHPOP3、堆棧操作過(guò)程

入棧、出棧(SP的變化、存儲(chǔ)器單元內(nèi)容的變化)注意:以下兩種情況也有堆棧操作!**子程序調(diào)用和返回**中斷轉(zhuǎn)入服務(wù)程序和中斷返回六、堆棧的概念及操作過(guò)程第115頁(yè)/共147頁(yè)1、基本概念時(shí)鐘周期T、總線周期、指令周期2、典型時(shí)序每個(gè)總線周期至少包含4個(gè)時(shí)鐘周期(T1~T4)一般情況下,在總線周期的T1狀態(tài)傳送地址,T2~T4狀態(tài)傳送數(shù)據(jù)。3、系統(tǒng)的復(fù)位和啟動(dòng)系統(tǒng)復(fù)位時(shí)各內(nèi)部寄存器的值(CS為FFFFH,其余為0)系統(tǒng)復(fù)位后:程序?qū)腇FFFH:0000H位置開(kāi)始運(yùn)行七、8086CPU時(shí)序第116頁(yè)/共147頁(yè)第三章8086的尋址方式和指令系統(tǒng)一、指令構(gòu)成二、與數(shù)據(jù)有關(guān)的七種尋址方式三、I/O端口尋址方式(IN/OUT)四、轉(zhuǎn)移類指令尋址方式五、8086的指令系統(tǒng)第117頁(yè)/共147頁(yè)操作碼說(shuō)明要執(zhí)行的是什么操作操作對(duì)象,可以有0個(gè)、1個(gè)或2個(gè)目的源一、指令構(gòu)成第118頁(yè)/共147頁(yè)1、立即尋址方式2、寄存器尋址方式3、直接尋址方式4、寄存器間接尋址方式5、寄存器相對(duì)尋址方式6、基址變址尋址方式7、相對(duì)基址變址尋址方式二、與數(shù)據(jù)有關(guān)的七種尋址方式如:MOVAX,0100H如:MOVAX,DX如:MOVAX,[0100H]如:MOVAX,[BX]如:MOVAX,[BX+0100H]如:MOVAX,[BX+SI]如:MOVAX,[BX+SI+20H]第119頁(yè)/共147頁(yè)直接端口尋址當(dāng)端口號(hào)小于FFH(255)時(shí),直接給出間接端口尋址端口號(hào)大于FFH(255)時(shí),必須放在DX中給出三、I/O端口尋址方式(IN/OUT)例:INAL,80HINAX,82HMOVDX,3FFHINAL,DXINAX,DX例:OUT80H,AL

OUT82H,AXMOVDX,3FFHOUTDX,ALOUTDX,AX第120頁(yè)/共147頁(yè)1、段內(nèi)直接轉(zhuǎn)移例如:JMP0100H;IP=0100HJMPSHORTNEXT;NEXT為標(biāo)號(hào),符號(hào)地址2、段內(nèi)間接轉(zhuǎn)移例如:JMPBX;IP←

BXJMPWORDPTR[BX];IP←字內(nèi)存單元的內(nèi)容3、段間直接轉(zhuǎn)移例如:JMPFARPTR標(biāo)號(hào)4、段間間接轉(zhuǎn)移例如:JMPDWORDPTR[BX]四、轉(zhuǎn)移類指令尋址方式(以JMP為例)第121頁(yè)/共147頁(yè)1、數(shù)據(jù)傳送指令出棧,并送入標(biāo)志寄存器POPF輸出OUT標(biāo)志寄存器入棧指令PUSHF輸入INAH內(nèi)容裝入標(biāo)志寄存器低字節(jié)SAHF輸入輸出指令標(biāo)志寄存器低字節(jié)裝入AHLAHF表轉(zhuǎn)換XLAT標(biāo)志傳送指令交換字或字節(jié)XCHG裝入附加段寄存器LES出棧指令POP裝入數(shù)據(jù)段寄存器LDS入棧指令PUSH裝入有效地址LEA字節(jié)或字傳送MOV地址目標(biāo)傳送指令通用數(shù)據(jù)傳送指令五、8086的指令系統(tǒng)重點(diǎn)掌握各種指令的格式、功能、標(biāo)志位及正確應(yīng)用。注意:MOV指令允許傳送的路徑第122頁(yè)/共147頁(yè)2、算術(shù)運(yùn)算指令加法指令A(yù)DD加法指令A(yù)DC帶進(jìn)位的加法指令I(lǐng)NC增量指令注:ADC、DEC不影響CF減法指令SUB減法指令SBB帶借位的減法指令DEC減量指令NEG取負(fù)指令CMP比較指令十進(jìn)制數(shù)(BCD碼)的運(yùn)算指令DAA加法的十進(jìn)制調(diào)整指令A(yù)AA加法的ASCII碼調(diào)整指令DAS/AAS減法調(diào)整指令第123頁(yè)/共147頁(yè)3、邏輯運(yùn)算與移位指令測(cè)試TEST帶進(jìn)位循環(huán)右移RCR算術(shù)右移SAR異或XOR帶進(jìn)位循環(huán)左移RCL邏輯右移SHR邏輯加(或)OR循環(huán)右移ROR算術(shù)左移SAL邏輯乘(與)AND循環(huán)左移ROL邏輯左移SHL取反NOT循環(huán)移位算術(shù)邏輯移位邏輯運(yùn)算

邏輯運(yùn)算和位移指令注意:邏輯運(yùn)算指令的應(yīng)用第124頁(yè)/共147頁(yè)4、控制轉(zhuǎn)移指令無(wú)條件轉(zhuǎn)移和過(guò)程調(diào)用指令JMPCALLRET無(wú)條件轉(zhuǎn)移過(guò)程調(diào)用過(guò)程返回條件轉(zhuǎn)移JZ/JE(10條)JA/JNBE(8條)直接標(biāo)志轉(zhuǎn)移間接標(biāo)志轉(zhuǎn)移條件循環(huán)控制LOOPCX≠0則循環(huán)中斷INTIRET(執(zhí)行過(guò)程)中斷中斷返回第125頁(yè)/共147頁(yè)一、匯編語(yǔ)言語(yǔ)句格式二、常用運(yùn)算符及表達(dá)式的應(yīng)用三、常用偽指令四、匯編語(yǔ)言程序設(shè)計(jì)第四章匯編語(yǔ)言程序設(shè)計(jì)掌握匯編基本語(yǔ)法及簡(jiǎn)單編程第126頁(yè)/共147頁(yè)兩類語(yǔ)句:指令性語(yǔ)句偽指令語(yǔ)句兩種格式:標(biāo)號(hào):指令助記符操作數(shù),操作數(shù);注釋名字偽指令指示符操作數(shù),操作數(shù);注釋四種數(shù)據(jù)項(xiàng):常數(shù)、變量、標(biāo)號(hào)、表達(dá)式一、匯編語(yǔ)言語(yǔ)句格式差別:格式及功能不同(形式);匯編時(shí)能否形成對(duì)應(yīng)的機(jī)器碼(本質(zhì))第127頁(yè)/共147頁(yè)1.算術(shù)運(yùn)算符〔+,-,*,/(取商),MOD(取余)〕2.邏輯運(yùn)算符〔AND,OR,NOT,XOR〕——按位操作3.關(guān)系運(yùn)算符〔EQ,NE,LT,GT,LE,GE〕——注意計(jì)算結(jié)果4.數(shù)值返回運(yùn)算符(分析運(yùn)算符)

OFFSET,SEG,TYPE,LENGTH,SIZE5、修改屬性運(yùn)算符段操作符ES:

DS:

SS:

CS:PTR

格式:類型/距離PTR變量或標(biāo)號(hào)6、補(bǔ)充:$:地址計(jì)數(shù)器的當(dāng)前值二、常用運(yùn)算符及表達(dá)式的應(yīng)用第128頁(yè)/共147頁(yè)在匯編時(shí)進(jìn)行處理,主要完成變量定義,段定義,段分配,指示程序開(kāi)始和結(jié)束等功能。常用:數(shù)據(jù)定義(變量定義)語(yǔ)句:DB,DW,DD符號(hào)定義語(yǔ)句:EQU段定義語(yǔ)句:SEGMENT…ENDS段分配語(yǔ)句:ASSUME過(guò)程定義語(yǔ)句:PROC…ENDP程序開(kāi)始、結(jié)束語(yǔ)句:END三、常用偽指令第129頁(yè)/共147頁(yè)基本程序結(jié)構(gòu)順序結(jié)構(gòu)分支結(jié)構(gòu)循環(huán)結(jié)構(gòu)子程序結(jié)構(gòu)注意:程序流程圖的繪制方法四、匯編語(yǔ)言程序設(shè)計(jì)DATA

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論