第6章中北大學課件_第1頁
第6章中北大學課件_第2頁
第6章中北大學課件_第3頁
第6章中北大學課件_第4頁
第6章中北大學課件_第5頁
已閱讀5頁,還剩92頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

第六章輸入輸出和中斷技術6.1為什么要用接口電路接口概念計算機通過外圍設備同外部世界通信或交換數(shù)據(jù)稱為“輸入/輸出”.

把外圍設備同微型計算機連接起來實現(xiàn)數(shù)據(jù)傳送的控制電路稱為“外設接口電路”,簡稱“外設接口”。(介于主機和外設之間的一種緩沖電路稱為I/O接口電路).具體結構示意圖見圖所示:一.CPU與I/O接口

接口電路按功能可分為兩類:①是使微處理器正常工作所需要的輔助電路:時鐘信號或中斷請求等;②是輸入/輸出接口電路:CPU與外部設備信息的傳送(接收、發(fā)送)。最常用的外部設備:如鍵盤、顯示裝置、打印機、磁盤機等都是通過輸入/輸出接口和總線相連的,完成檢測和控制的儀表裝置也屬于外部設備之列,也是通過接口電路和主機相連。二、為什么要用接口電路:需要分析一下外部設備的輸入/輸出操作和存儲器讀/寫操作的不同之處:

存儲器都是用來保存信息的,功能單一,傳送方式單一(一次必定是傳送1個字節(jié)或者1個字),品種很有限(只有只讀類型和可讀/可寫類型),存取速度基本上和CPU的工作速度匹配.。

外部設備的功能多種多樣的(輸入設備,輸出設備,輸入設備/輸出設備),信息多樣(數(shù)字式的,模擬式的),信息傳輸?shù)姆绞剑ú⑿械?,串行的),外設的工作速度通常比CPU的速度低得多,而且各種外設的工作速度互不相同,這也要求通過接口電路對輸入/輸出過程起一個緩沖和聯(lián)絡的作用。注:接口電路完成相應的信號轉(zhuǎn)換、速度匹配、數(shù)據(jù)緩沖等功能三.接口的功能(8種):⑴尋址能力:對送來的片選信號進行識別。⑵輸入/輸出功能:根據(jù)讀/寫信號決定當前進行的是輸入操作還是輸出操作。⑶數(shù)據(jù)轉(zhuǎn)換功能:并行數(shù)據(jù)向串行數(shù)據(jù)的轉(zhuǎn)換或串行數(shù)據(jù)向并行數(shù)據(jù)的轉(zhuǎn)換。⑷聯(lián)絡功能:就緒信號,忙信號等。⑸中斷管理:發(fā)出中斯請求信號、接收中斷響應信號、發(fā)送中斷類型碼的功能。并具有優(yōu)先級管理功能。⑹復位:接收復位信號,從而使接口本身以及所連的外設進行重新啟動。⑺可編程:用軟件來決定其工作方式,用軟件來設置有關的控制信號。⑻錯誤檢測:一類是傳輸錯誤。另—類是覆蓋錯誤。注:一些接口還可根據(jù)具體情況設置其它的檢測信息。I/O接口電路中最基本的接口電路有8259中斷控制器接口電路,8255可編程并行接口電路、8253可編程定時/計數(shù)器、8251可編程串行接口電路、8237直接存儲器存取電路(DMA),A/D,D/A轉(zhuǎn)換器等。6.2接口與端口6.2.1CPU與外設之間的接口信息

CPU與一個外設交換信息,通常需要以下一些信號:

1.

數(shù)據(jù)(Data)

數(shù)字量——鍵盤等輸入的數(shù)據(jù);模擬量——如溫度、壓力、流量等;(需先經(jīng)過A/D轉(zhuǎn)換,將其變?yōu)閿?shù)字量,由CPU處理后,再經(jīng)過

D/A轉(zhuǎn)換,變?yōu)槟M量,進行控制),這部分工作由接口電路來完成。開關量——如開關的合與斷等。

2.狀態(tài)信息(Status)輸入時,輸入設備的信息是否準備好(READY);

輸出時,輸出設備是否有空等(BUSY)。

3.控制信息(Control)控制輸入輸出設備的啟動和停止等。6.2.2I/O端口控制方式一個I/O接口總要包括若干個端口,如數(shù)據(jù)端口、命令端口、狀態(tài)端口、方式端口、操作結果端口、地址索引端口等。I/O端口也必須進行編址以便能被主機訪問。在微機系統(tǒng)中,對I/O接口的端口編址有兩種方法:端口統(tǒng)一編址和端口獨立編址。一、端口獨立編址獨立編址方式的優(yōu)點是:

I/O端口的地址碼較短(一般比同一系統(tǒng)中存儲單元的地址碼短),譯碼電路比較簡單,存儲器同I/0端口的操作指令不同,程序比較清晰;存儲器和I/O端口的控制結構相互獨立,可以分別設計。獨立編址方式的缺點:

需要有專用的I/O指令,而這些I/0指令的功能一般不如存儲器訪問指令那樣豐富,所以程序設計的靈活性較差。典型系統(tǒng)

8086采用的就是這種方式OUT43H,AL二、統(tǒng)一編址統(tǒng)一編址方式的優(yōu)點

任何對存儲器數(shù)據(jù)進行操作的指令都可用于I/0端口的數(shù)據(jù)操作,不需要專用的I/0指令,從而使系統(tǒng)編程比較靈活;l/O端口的地址空間是內(nèi)存空間的一部分,這樣,l/O端口的地址空間可大可小,從而使外設的數(shù)目幾乎可以不受限制。統(tǒng)一編址方式的缺點

l/O端口占用了內(nèi)存空間的一部分,顯然內(nèi)存空間必然減少,影響了系統(tǒng)內(nèi)存的容量;同時訪問l/O端口同訪問內(nèi)存一樣,由于訪問內(nèi)存時的地址長,指令的機器碼也長,執(zhí)行時間顯然增加。典型系統(tǒng)

IntelMCS—51等系列單片微計算機就采用這種編址方式,這些微計算機中無專門的IN/OUT指令。

I/O指令:

?若端口地址在0~FFH

范圍內(nèi),則用:

INAL,端口地址(輸入)

OUT端口地址,AL(輸出)如:INAL,KOU1OUTKOU2,AL

?若端口地址在0100~FFFFH

范圍內(nèi),則用:

MOVDX,端口地址

INAL,DXOUTDX,AL

如:MOVDX,KOU100INAL,DX65F30200外設000000FFFFFF0100KOU1KOU2KOU311223344KOU100KOU101可尋址28=256個端口可尋址216=64K個端口11323201內(nèi)存00000FFFFF6.2.3簡單的輸入輸出接口芯片在外設接口電路中,經(jīng)常需要對傳輸過程中的信息進行放大、隔離以及鎖存,能實現(xiàn)上述功能的接口芯片最簡單的就是緩沖器、數(shù)據(jù)收發(fā)器和鎖存器。一、74系列器件

74系列器件是TI(德州儀器)公司生產(chǎn)的中小規(guī)模TTL集成電路芯片,這是一種低成本、工業(yè)民用產(chǎn)品,工作溫度為00C—700C,從功能和速度分類有如下幾類:·74xxx——標準TTL·74Lxxx——低功耗TTL·74Sxxx——肖特基型TTL.74LSxxx——低功耗肖特基型TTL.74ALSxxx——高性能型TTL.74Fxxx——高速型TTL

對于相同編號(XXX),不同類型的芯片,其邏輯功能完全一樣。二、鎖存器74LS37374LS373是一種8D鎖存器,具有三態(tài)驅(qū)動輸出。使能端G有效時,將D端數(shù)據(jù)打入鎖存器中D門,當輸出允許端OE有效時,將鎖存器中鎖存的數(shù)據(jù)送到輸出端Q三、緩沖器74LS244

一種三態(tài)輸出的八緩沖器和線驅(qū)動器1A1~1A4,2A1~2A4為輸入,1Y1~1Y4,2Y1~2Y4為輸出當1G有效(低電平)時:1Y1~1Y4輸出等于1A1~1A4;當2G有效(低電平)時:2Y1~2Y4輸出等于2A1~2A4;而當1G(或2G)為高電平時,輸出1Y1—1Y4(或2Y1-2Y4)為高阻態(tài)。經(jīng)74LS244緩沖后,輸入信號被驅(qū)動,輸出信號的驅(qū)動能力加大了。74LS244緩沖器主要用于三態(tài)輸出的存儲地址驅(qū)動器、時鐘驅(qū)動器和總線定向接收器和定向發(fā)送器等。常用的緩沖器還有74LS240和741~241等。四、數(shù)據(jù)收發(fā)器74LS2456.3數(shù)據(jù)傳送的控制方式按照I/O控制組織的演變順序以及外設與主機并行工作的程度,微機系統(tǒng)中數(shù)據(jù)傳送的控制方式主要有程序控制方式、DMA(直接存儲器存取)方式和I/O處理機方式。6.3.1程序控制方式1.

程序直接控制方式

①無條件傳送方式

②查詢傳送方式2.中斷傳送方式一、無條件傳送方式

又稱“同步傳送方式”。主要用于外設的定時是固定的并且是已知的場合,外設必須在微處理器限定的指令時間內(nèi)準備就緒,并完成數(shù)據(jù)的接收或發(fā)送。通常采用的辦法是:把I/O指令插入到程序中,當程序執(zhí)行到該I/O指令時,外設必定已為傳送數(shù)據(jù)作好準備,于是在此指令時間內(nèi)完成數(shù)據(jù)傳送任務。無條件傳送是最簡便的傳送方式,它所需的硬件和軟件都較少。DatasegmentDtor

dw100dup(?)DataendsCodesegmentassumecs:code,ds:dataStart:movax,data

mov

ds,ax

mov

dx,0100leabx,dtor

xoral,alAgain:moval,dl

out20h,alcallneardelay1

moval,dhout20h,alcallneardelay2inax,10h

mov[bx],axincbxincbx

rcldh,1

jncagain例:采用同步傳送的數(shù)據(jù)采集系統(tǒng)(8路采樣)接口輸入口輸出口

movah,4ch

int21hDelay1procnearpushaxpushdx

movax,3ffhLoop2:mov

dx,0ffffhLoop1:dec

dx

jnzloop1

decax

jnzloop2popdxPopaxretDelay1endpCodeendsendstart二、查詢式傳送方式

CPU與I/O設備的工作往往是異步的,很難保證當CPU執(zhí)行輸入操作時,外設已把要輸入的信息準備好了;而當CPU執(zhí)行輸出時,外設的寄存器(用于存放CPU輸出數(shù)據(jù)的寄存器)一定是空的。所以,通常程序控制的傳送方式在傳送之前,必須要查詢一下外設的狀態(tài),當外設準備就緒了才傳送;若未準備好,則CPU等待。例:采用查詢方式傳送的數(shù)據(jù)采集系統(tǒng)(8路采樣)Start:movdl,0f8h

;1111,1000啟動A/D轉(zhuǎn)換

leadi,detor

;輸入數(shù)據(jù)存放地址

Again:moval,dl;

andal,0efh;AL=1110,1000,使D4=0

out4,al;停止A/D轉(zhuǎn)換,

calldelay;

moval,dl;AL=1111,1000

out4,al

;啟動A/D轉(zhuǎn)換并選擇模擬量A0poll:inal,2;輸入狀態(tài)信息

shral,1;

jncpoll;若未Ready,等待

inal,3;否則,輸入數(shù)據(jù)

stosb

;將數(shù)據(jù)存入內(nèi)存

incdl;取下一個模擬量

jneagain;狀態(tài)端口數(shù)據(jù)口狀態(tài)口控制口A7~A0

D06.3.2中斷傳送方式

.為提高cpu的工作效率和使cpu和外設以及外設間的并行工作,可采用中斷傳送方式。

.在中斷傳送方式中,通常是在程序中安排好在某一時刻啟動某一臺外設,然后CPU繼續(xù)執(zhí)行其主程序,當外設完成數(shù)據(jù)傳送的準備后,向CPU發(fā)出“中斷請求”信號,在CPU可以響應中斷的條件下,現(xiàn)行主程序被“中斷”,轉(zhuǎn)去執(zhí)行“中斷服務程序”,在“中斷服務程序”中完成一次CPU與外設之間的數(shù)據(jù)傳送,傳送完成后仍返回被中斷的主程序,從斷點處繼續(xù)執(zhí)行。傳送流程演示6.3.3DMA(直接存儲器存?。﹤魉头绞街袛鄠魉腿允怯蒀PU通過程序來傳送,每次要保護斷點,保護現(xiàn)場需用多條指令,每條指令要有取指和執(zhí)行時間。這對于一個高速I/O設備,以及成組交換數(shù)據(jù)的情況,例如磁盤與內(nèi)存間的信息交換,就顯得速度太慢了。所以希望用硬件在外設與內(nèi)存間直接進行數(shù)據(jù)交換(DMA),而不通過CPU,這樣數(shù)據(jù)傳送的速度的上限就取決于存儲器的工作速度。但是,通常系統(tǒng)的地址和數(shù)據(jù)總線以及一些控制信號線(例如I/O、等)是由CPU管理的。在DMA方式時,就希望CPU把這些總線讓出來(即CPU連到這些總線上的線處于第三態(tài)——高阻狀態(tài)),而由DMA控制器接管,控制傳送的字節(jié)數(shù),判斷DMA是否結束,以及發(fā)出DMA結束等信號。這些都是由硬件實現(xiàn)的。傳送流程演示(一)、DMA操作方法

1.周期挪用2.周期擴展3.CPU的停機方式(二)、DMA的傳送方式

1.單字節(jié)方式:每次DMA請求只傳送一個字節(jié)數(shù)據(jù),每傳送完一個字節(jié),都撤除DMA請求信號,釋放總線。

2.成組傳送方式一個DMA請求可以傳送一組信息,這一組信息的字節(jié)數(shù)由編程決定(在DMAC初始化時),只要在DACK有效之前DREQ保持有效即可。一旦DACK有效,不管DREQ是否有效,DMAC一直不放棄總線控制權,直到整個數(shù)組傳送完。

3.請求傳送方式又稱查詢傳送方式。該方式的傳送類似于成組傳送方式,但每傳送一個字節(jié)后,DMAC就檢測DREQ,若無效,則掛起;若有效,繼續(xù)DMA傳送,直到:①一組信息傳送結束;②外加信號強制DMAC中止操作。(三)、DMA控制器的基本功能DMAC是控制存儲器和外部設備之間直接高速地傳送數(shù)據(jù)的硬件電路,它應能取代CPU,用硬件完成圖8-17所示的各項功能。具體地說應具有如下功能:(1)能接收外設的請求,向CPU發(fā)出DMA請求信號。(2)當CPU發(fā)出DMA響應信號之后,接管對總線的控制,進入DMA方式。(3)能尋址存儲器,即能輸出地址信息和修改地址。(4)能向存儲器和外設發(fā)出相應的讀/寫控制信號。(5)能控制傳送的字節(jié)數(shù),判斷DMA傳送是否結束。(6)在DMA傳送結束以后,能結束DMA請求信號,釋放總線,使CPU恢復正常工作。,

該電路的工作過程如下:當輸入設備準備好一個字節(jié)數(shù)據(jù)時,發(fā)出選通脈沖STB,該信號一方面選通“數(shù)據(jù)緩沖寄存器”U2,把輸人數(shù)據(jù)通過U2送人“鎖存器”U3;另一方面將“DMA請求觸發(fā)器”Ul置“1”,作為鎖存器U3的準備就緒信號READY,打開鎖存器U3,把輸人數(shù)據(jù)送上數(shù)據(jù)總線;同時DMA請求觸發(fā)器U1向DMAC發(fā)出DMA請求信號。然后,DMAC向CPU發(fā)出HOLD(總線請求)信號,CPU在現(xiàn)行總線周期結束后給予響應,發(fā)出HLDA信號,DMAC接到該信號后接管總線控制權,發(fā)出DMA響應和地址信息,并發(fā)出存儲器寫命令,把外設輸人數(shù)據(jù)(經(jīng)緩沖器U2、鎖存器U3暫存在系統(tǒng)數(shù)據(jù)總線上)寫到內(nèi)存然后修改地址指針,修改計數(shù)器、檢查傳送是否結束,若未結束,則循環(huán)傳送直到整個數(shù)據(jù)塊傳送完。在整個數(shù)據(jù)傳送完后,DMAC撤除總線請求信號HOLD,在下一個T周期的上升沿,使HLDA變?yōu)闊o效。上述過程如圖6—13的波形圖所示。幾種傳送方式的比較:1.無條件傳送:只能用于外部設備與CPU的動作同步時,否則出錯。這種方式已較少使用。2.查詢傳送:

?接口簡單,

?但在傳送過程中,若外設數(shù)據(jù)沒有準備好,則CPU一直在查詢、等待,而不能做其他事情。CPU的效率低下。3.中斷傳送:

?只有當外設數(shù)據(jù)準備好時(向CPU發(fā)出請求),CPU才進行數(shù)據(jù)傳送(在中斷服務程序中),其余時間CPU可以做其他事情。CPU效率大大提高。

?但是,每傳送一次數(shù)據(jù),CPU都要執(zhí)行一次中斷服務程序,在中斷服務程序中,除執(zhí)行IN

和OUT

指令外,還要進行下列工作:保護斷點、保護標志寄存器、保護某些通用寄存、恢復等一些工作,

95%的時間是額外開銷,從而傳送效率并不高。

4.DMA傳送:

在DMAC的控制下,外設直接和存儲器(也可外設與外設,存儲器與存儲器之間)進行數(shù)據(jù)傳送,而不必經(jīng)過CPU,傳送速度基本取決于外設與存儲器的速度,從而傳送效率大大提高。6.4中斷技術中斷方式如果當外設將數(shù)據(jù)準備好后,CPU暫時停止當前的工作,進行與外設的數(shù)據(jù)交換,這顯然要提高CPU的工作效率,也解決了慢速的外設與快速的CPU間在數(shù)據(jù)傳輸時的速度匹配的矛盾。

6.4.1中斷的基本概念一、中斷和中斷源

所謂“中斷”是指在CPU正常運行程序時,由于內(nèi)、外部事件引起CPU暫時中止正在運行的程序,轉(zhuǎn)而去執(zhí)行請求CPU暫時中止的內(nèi)、外部事件的服務程序,待該服務程序處理完畢后又返回到被中止的程序。

能夠向CPU發(fā)出中斷請求的中斷來源稱為“中斷源”。常見的中斷源為:

(1)一般的輸入/輸出設備,如CRT終端、行式打印機等;

(2)數(shù)據(jù)通道,如磁帶、磁盤等;

(3)實時時鐘,如定時器芯片8253等的定時輸出作為定時中斷請求信號;

(4)故障信號,如電源掉電等;

(5)軟件中斷,如為調(diào)試程序而設置的中斷源。日常事務程序中斷服務程序二、中斷系統(tǒng)的功能為滿足上述中斷要求,中斷系統(tǒng)應具有的功能可歸結為中斷處理和中斷控制。

1.中斷處理包括發(fā)現(xiàn)中斷請求,響應中斷請求、中斷處理與中斷返回。

2.中斷控制主要是實現(xiàn)中斷優(yōu)先級的排隊和中斷嵌套三、中斷的主要用途在微機系統(tǒng)中,中斷的主要用途是:

(1)實現(xiàn)輸入/輸出操作;

(2)電源掉電或其他情況的報警;

(3)控制臺或人工干預;

(4)多處理機系統(tǒng)中各處理機之間的協(xié)調(diào);

(5)控制操作系統(tǒng)。四、可屏蔽中斷與不可屏蔽中斷

6.4.2中斷處理過程一、CPU響應中斷的條件1.設置中斷請求觸發(fā)器2.設置中斷屏蔽觸發(fā)器3.設置中斷允許觸發(fā)器的狀態(tài)4.CPU在現(xiàn)行指令結束后響應中斷

在滿足上面三個條件的情況下,CPU在執(zhí)行現(xiàn)行指令的最后一個機器周期(總線周期)的最后一個時鐘周期(T狀態(tài))時,才測試中斷輸入線INT(或INTR),若發(fā)現(xiàn)中斷請求有效,則把內(nèi)部的中斷鎖存器置“1”,下一總線周期進入中斷周期。具有中斷屏蔽的接口電路二、中斷響應的過程

1.關中斷

CPU在響應中斷后,發(fā)出中斷響應信號INTA,同時內(nèi)部自動地關中斷,以禁止接受其他的中斷請求。

2.保護斷點

把斷點處的IP(指令指針)值和CS值(段基值)壓人堆棧保留理完后能正確地返回主程序斷點。

3.識別中斷源CPU要對中斷請求進行處理,必須要找到相應的中斷服務程序(處理中斷的程序)的人口地址,這就是中斷源的識別。識別中斷源有兩種方法:

(1)查詢中斷

(2)向量中斷4.保護現(xiàn)場

為了不使中斷服務程序的運行影響主程序的狀態(tài),必須把斷點處有關寄存器(指在中斷服務程序中要使用的寄存器)內(nèi)容以及標志寄存器的狀態(tài),壓人堆棧保護。

5.執(zhí)行中斷服務程序

6.恢復現(xiàn)場

即把中斷服務程序執(zhí)行前壓人堆棧的現(xiàn)場信息彈出恢復到原寄存器及標志寄存器。

7.開中斷與返回

開中斷放在返回之前,目的是返回主程序后能繼續(xù)響應新的中斷請求。6.4.3中斷優(yōu)先級當多個中斷源同時向CPU申請中斷時,CPU必須決定先為那個中斷源服務.共有3種方法軟件查詢法確定中斷優(yōu)先級硬件查詢法確定優(yōu)先級中斷優(yōu)先級編碼電路一、軟件查詢確定中斷優(yōu)先級在查詢方式中詢問的次序即為優(yōu)先級的次序,不需要有判斷優(yōu)先級的硬件排隊電路。其缺點是在中斷源較多的情況下由詢問到轉(zhuǎn)至相應的中斷服務程序的人口時間較長。多個中斷源共用同一中斷請求端或門中斷請求觸發(fā)器,高有效軟件查詢法識別中斷源二、硬件查詢確定優(yōu)先級來自CPU的“中斷響應”信號從A設備開始串行地往下傳送,當A設備有“·中斷請求”時,則“中斷響應”信號在門A2處被封鎖,不再下傳,使后面的設備得不到CPU的“中斷請求”信號。外設的中斷優(yōu)先級由其在鏈式排隊電路中的先后次序來決定。讀中斷矢量EN高有效高電平有效優(yōu)先控制失效控制中斷屏蔽寄存器0-開中斷請求觸發(fā)器1-有請求三、中斷優(yōu)先級編碼電路6.4.4中斷的嵌套執(zhí)行低級中斷時被高級中斷所中斷稱中斷嵌套有中斷嵌套時的中斷服務程序編程注意事項屏蔽同級及低級中斷中斷服務過程中開放中斷恢復現(xiàn)場時關中斷恢復現(xiàn)場后開中斷6.4.58086/8088的中斷系統(tǒng)8086/8088中斷系統(tǒng)的特點:矢量中斷能處理256個中斷源(圖)內(nèi)部中斷外部中斷外部中斷6.4.5.1外部中斷一、可屏蔽中斷INTRIF標志可屏蔽中斷有2個INTA周期,第一個周期響應中斷請求,第2個周期讀中斷類型號二、不可屏蔽中斷NMI用來處理緊急或災難性事件電源掉電存儲器讀寫錯總線奇偶校驗錯不執(zhí)行中斷響應周期有固定的中斷類型號26.4.5.2內(nèi)部中斷溢出中斷溢出標志置位時引起該中斷有固定的中斷類型號4(執(zhí)行INTO產(chǎn)生)除法錯中斷除法運算的商大于目的操作數(shù)字長能表示的范圍中斷類型號0(自動產(chǎn)生)INTn中斷(軟中斷)執(zhí)行INTn指令時引起的中斷斷點中斷INT3指令時產(chǎn)生中斷單步(陷阱)中斷TF標志置1時(將標志與0100H相或),每執(zhí)行一條指令產(chǎn)生一次中斷,用于調(diào)試中斷類型號1(每執(zhí)行完一條指令自動產(chǎn)生)內(nèi)部中斷的特點:除單步中斷外均不可屏蔽不執(zhí)行中斷響應周期除軟中斷外都有固定的中斷類型號除單步中斷外,所有內(nèi)部中斷都比外部中斷優(yōu)先級高.中斷優(yōu)先級中斷優(yōu)先級除法錯,INTn,INT0NMIINTR單步最高最低movbl,0idiv

bl

;除數(shù)BL=0,產(chǎn)生除法錯中斷movax,200hmovbl,1divbl

;商=200H,不能用AL表達 ;產(chǎn)生除法錯中斷⑴除法錯中斷在執(zhí)行除法指令時,若除數(shù)為0或商超過了寄存器所能表達的范圍,則產(chǎn)生一個向量號為0的內(nèi)部中斷,稱為除法錯中斷例如:例如:DEBUG.EXE調(diào)試程序的單步命令T就利用單步中斷實現(xiàn)對程序的單步調(diào)試⑵單步中斷若單步中斷TF為1,則在每條指令執(zhí)行結束后產(chǎn)生一個向量號為1的內(nèi)部中斷,稱為單步中斷⑶斷點中斷設置斷點的專用指令,其操作碼為單字節(jié)0CCH,助記符為INT3movax,2000haddax,7000h

;2000H+7000H=9000H,溢出:OF=1into ;因為OF=1,所以產(chǎn)生溢出中斷⑷溢出中斷在執(zhí)行溢出中斷指令INTO時,若溢出標志OF為1,則產(chǎn)生一個向量號為4的內(nèi)部中斷,被稱為溢出中斷例如:例如:DEBUG.EXE調(diào)試程序的運行命令G設置的斷點,就是利用INT3指令實現(xiàn)的⑸軟中斷在執(zhí)行中斷調(diào)用指令INTn時產(chǎn)生的一個向量號為n(0~255)的內(nèi)部中斷,稱為指令中斷,其中向量號為3的指令中斷比較特別(生成一個字節(jié)的指令代碼:11001100),常用于程序調(diào)試,被稱為斷點中斷6.4.5.3中斷向量表中斷向量表是存放中斷服務程序入口地址的表格中斷向量表存放在內(nèi)存的0000段,0000偏移處,共1024字節(jié)每個中斷向量占4個字節(jié),低地址放IP高地址放CS1)定義:所謂中斷向量,實際上就是中斷處理子程序的入口地址,每個中斷類型對應一個中斷向量

8086的中斷系統(tǒng)是以位于內(nèi)存0段的0~3FFH區(qū)域的中斷向量表為基礎的,中斷向量表中最多可以容納256個中斷向量。

中斷向量并不是任意存放的。一個中斷向量占4個存儲單元,其中前2個單元存放IP且低位在前,高位在后,后2個單元存放CS,同樣也是低位在前、高位在后。按照中斷類型的序號,對應的中斷向量在內(nèi)存的0段0單元開始有規(guī)則地進行排列。重點:由中斷類型號如何求中斷向量。2)8086中斷類型號的獲取方法有兩種方法獲取類型號。第一種是用指令直接獲取。對于類型號0~4的中斷,由于8086CPU已規(guī)定了產(chǎn)生中斷的原因,所以可以直接獲取類型號。而INTN類型的中斷可以由指令直接得到中斷類型號。第二種是由外部引入的INTR中斷,當CPU響應中斷時必須由硬件提供中斷類型號。在可屏蔽中斷響應周期進行到第二個周期時,類型號放入數(shù)據(jù)總線,CPU從數(shù)據(jù)總線上獲取類型號。中斷向量:中斷服務程序的入口地址(首地址),邏輯地址含有段地址CS和偏移地址IP(32位)每個中斷向量的低字是偏移地址、高字是段地址,需占用4個字節(jié)

8086微處理器從物理地址000H開始,依次安排各個中斷向量,向量號也從0開始256個中斷占用1KB區(qū)域,就形成中斷向量表向量號為N的中斷向量的物理地址=N×4向量號255的CS值用戶中斷(向量號255)3FCH向量號255的IP值……向量號2的CS值非屏蔽中斷(向量號2)008H向量號2的IP值向量號1的CS值單步中斷(向量號1)004H向量號1的IP值向量號0的CS值除法錯中斷(向量號0)000H向量號0的IP值8086的中斷向量表一、8086中斷過程——內(nèi)部中斷過程

1)首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。2)置TF=0,暫停單步中斷,并置IF=0,用以屏蔽以后的可屏蔽中斷。3)斷點地址CS:IP壓入堆棧。4)識別中斷源,首先獲取中斷類型號,并將其乘4,得到存儲中斷向量的起始地址,進而取得中斷向量。將中斷向量中的高地址的字送入CS寄存器,將低地址的字送IP寄存器中。6.4.5.48086中斷過程5)執(zhí)行中斷服務程序。6)中斷服務程序最后一條指令為IRET,這條指令的功能保證了從堆棧中彈出斷點IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復斷點的狀態(tài)標志。7)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點處,程序從斷點處繼續(xù)運行二、8086中斷過程——非屏蔽中斷過程1)CPU一旦響應了中斷請求,首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。2)置TF=0,暫停單步中斷,并置IF=0,用以屏蔽以后的中斷。3)斷點地址CS:IP壓入堆棧。4)識別中斷源,首先由中斷類型號02H查中斷向量表讀取中斷服務程序的入口地址到CS和IP中。5)執(zhí)行中斷服務程序。6)執(zhí)行中斷返回指令IRET,這條指令的功能保證了從堆棧中彈出斷點IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復斷點的狀態(tài)標志。7)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點處,程序從斷點處繼續(xù)運行。三、8086中斷過程——可屏蔽中斷過程

1)執(zhí)行中斷響應周期發(fā)出中斷響應信號,從數(shù)據(jù)總線讀取中斷類型號。

2)如果當時IF=0,那么可屏蔽的中斷源被屏蔽。當IF=1時,CPU在執(zhí)行完當前指令(有重復前綴的字符串操作指令除外)后將響應它所收到的中斷請求。如果有幾個中斷源同時請求中斷,則CPU只響應其中優(yōu)先級最高的。

3)CPU一旦響應了中斷請求,首先將狀態(tài)寄存器的內(nèi)容壓入堆棧中。

4)置TF=0,暫停單步中斷,并置IF=0,用以禁止CPU響應新的可屏蔽中斷請求。

5)將指示斷點的指令指針寄存器IP及代碼段寄存器CS的內(nèi)容壓入堆棧。

6)識別中斷源,首先獲取中斷類型號,并將其乘4,得到存儲中斷向量的起始地址,進而取得中斷向量。

7)將中斷向量中的高地址的字送入CS寄存器,將低地址的字送IP寄存器,于是開始執(zhí)行中斷服務程序。

8)中斷服務程序最后一條指令為IRET,這條指令的功能保證了從堆棧中彈出斷點IP和CS的內(nèi)容,并存入各自的寄存器中,并接著彈出狀態(tài)寄存器的內(nèi)容,恢復斷點的狀態(tài)標志。

9)CPU按CS和IP指示的內(nèi)容正確地返回了程序的斷點處,程序從斷點處繼續(xù)運行。6.5可編程中斷控制器8259AIntel8259A是可編程中斷控制器PIC可用于管理Intel8080/8085、8086/8088、80286/80386的可屏蔽中斷8259A的基本功能一片8259A可以管理8級中斷,可擴展至64級每一級中斷都可單獨被屏蔽或允許在中斷響應周期,可提供相應的中斷向量號8259A設計有多種工作方式,可通過編程選擇6.5.18259A的內(nèi)部結構和引腳6.5.18259A的內(nèi)部結構和引腳1.中斷控制中斷請求寄存器IRR保存8條外界中斷請求信號IR0~IR7的請求狀態(tài)Di位為1表示IRi引腳有中斷請求;為0表示無請求中斷服務寄存器ISR保存正在被8259A服務著的中斷狀態(tài)Di位為1表示IRi中斷正在服務中;為0表示沒有被服務中斷屏蔽寄存器IMR保存對中斷請求信號IR的屏蔽狀態(tài)Di位為1表示IRi中斷被屏蔽(禁止);為0表示允許2.與處理器接口

A0RD*WR*CS*功能

0100110000101010×110×××1寫入ICW1、OCW2和OCW3寫入ICW2~ICW4和OCW1讀出IRR、ISR和查詢字讀出IMR數(shù)據(jù)總線高阻狀態(tài)數(shù)據(jù)總線高阻狀態(tài)3.中斷級連一個系統(tǒng)中,8259A可以級連,有一個主8259A,若干個(最多8個)從8259A級連時,主8259A的三條級連線CAS0~CAS2作為輸出線,連至每個從8259A的CAS0~CAS2每個從8259A的中斷請求信號INT,連至主8259A的一個中斷請求輸入端IR主8259A的INT線連至CPU的中斷請求輸入端SP*/EN*在非緩沖方式下,規(guī)定該8259A是主片(SP*=1)還是從片(SP*=0)CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/EN

CAS0INTA

CAS1

CAS2INT

IR0

IR1SP/ENIR7CAS0IR0CAS1IR1CAS2IR2

IR3INTAIR4IR5INTIR6IR7SP/ENINTAINTR+5V8259級聯(lián)工作示意圖返回8259級聯(lián)工作示意圖返回6.5.28259A的中斷過程CAS0~CAS2D0~D7SP/ENIR0~IR7CPU響應周期8259A工作波形INT第一個周期T1T2T3T4ALECLK

第二個周期T1T2T3T4第一個前保持為高電平

INTALOCK8259級聯(lián)工作示意圖返回6.5.38259A的工作方式普通全嵌套方式特殊全嵌套方式自動循環(huán)方式特殊循環(huán)方式優(yōu)先權固定方式優(yōu)先權循環(huán)方式設置優(yōu)先權方式普通中斷結束方式特殊中斷結束方式自動中斷結束方式非自動中斷結束方式結束中斷處理方式屏蔽中斷源方式普通屏蔽方式特殊屏蔽方式中斷觸發(fā)方式邊沿觸發(fā)方式電平觸發(fā)方式數(shù)據(jù)線連接方式緩沖方式非緩沖方式1.設置優(yōu)先權方式普通全嵌套方式8259A的中斷優(yōu)先權順序固定不變,從高到低依次為IR0、IR1、IR2、……IR7中斷請求后,8259A對當前請求中斷中優(yōu)先權最高的中斷IRi予以響應,將其向量號送上數(shù)據(jù)總線,對應ISR的Di位置位,至到中斷結束(ISR的Di位復位)在ISR的Di位置位期間,禁止再發(fā)生同級和低級優(yōu)先權的中斷,但允許高級優(yōu)先權中斷的嵌套特殊全嵌套方式優(yōu)先權自動循環(huán)方式優(yōu)先權特殊循環(huán)方式2.結束中斷處理方式什么是8259A的中斷結束?8259A利用中斷服務寄存器ISR判斷:某位為1,表示正在進行中斷服務;該位為0,就是該中斷結束服務。這里說明如何使ISR某位為0,不反映CPU的工作狀態(tài)。2.結束中斷處理方式自動中斷結束方式普通中斷結束方式配合全嵌套優(yōu)先權方式使用當CPU用輸出指令往8259A發(fā)出普通中斷結束EOI命令時,8259A就會把所有正在服務的中斷中優(yōu)先權最高的ISR位復位特殊中斷結束方式配合循環(huán)優(yōu)先權方式使用CPU在程序中向8259A發(fā)送一條特殊中斷結束命令,這個命令中指出了要清除哪個ISR位3.屏蔽中斷源方式普通屏蔽方式將IMR的Di位置1,則對應的中斷IRi被屏蔽,該中斷請求不能從8259A送到CPU如果IMR的Di位置0,則允許IRi中斷產(chǎn)生特殊屏蔽方式將IMR的Di位置1,對應的中斷IRi被屏蔽的同時,使ISR的Di位置04.中斷觸發(fā)方式邊沿觸發(fā)方式8259A將中斷請求輸入端出現(xiàn)的上升沿作為中斷請求信號電平觸發(fā)方式中斷請求端出現(xiàn)的高電平是有效的中斷請求信號5.數(shù)據(jù)線連接方式緩沖方式8259A的數(shù)據(jù)線需加緩沖器予以驅(qū)動8259A把SP*/EN*引腳作為輸出端,輸出允許信號,用以鎖存或開啟緩沖器非緩沖方式SP*/EN*引腳為輸入端若8259A級連,由其確定是主片或從片6.5.48259A的編程初始化編程8259A開始工作前,必須進行初始化編程給8259A寫入初始化命令字ICW中斷操作編程在8259A工作期間可以寫入操作命令字OCW將選定的操作傳送給8259A,使之按新的要求工作還可以讀取8259A的信息,以便了解他的工作狀態(tài)1.初始化命令字ICW初始化命令字ICW最多有4個8259A在開始工作前必須寫入必須按照ICW1~ICW4順序?qū)懭隝CW1和ICW2是必須送的ICW3和ICW4由工作方式?jīng)Q定D7D6D5D4D3D2D1D0寫ICW1A0=0,D4=1寫ICW2A0=1SNGL=1

IC4

溫馨提示

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

評論

0/150

提交評論