第2章微處理器系統(tǒng)_第1頁(yè)
第2章微處理器系統(tǒng)_第2頁(yè)
第2章微處理器系統(tǒng)_第3頁(yè)
第2章微處理器系統(tǒng)_第4頁(yè)
第2章微處理器系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩89頁(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)介

第二章8086/8088微處理器系統(tǒng)2.18086/8088CPU2.1.18086/8088的功能結(jié)構(gòu)圖2-13總線接口單元和執(zhí)行單元

1.總線接口單元BIU

總線接口單元BIU的功能是對(duì)外電路提供三組總線,實(shí)現(xiàn)CPU與存儲(chǔ)器、I/O端口之間地址信號(hào)、數(shù)據(jù)信號(hào)和控制/狀態(tài)信號(hào)的傳送。BIU承擔(dān)的具體任務(wù)是:根據(jù)CS和IP的值計(jì)算下一條將要執(zhí)行指令的物理地址;經(jīng)由總線控制電路發(fā)出的地址信息選中存儲(chǔ)器某一單元或某一I/O端口,以及相應(yīng)的讀/寫(xiě)控制信號(hào);經(jīng)數(shù)據(jù)總線完成8/16位數(shù)據(jù)的讀/寫(xiě)。在取指令階段,把從存儲(chǔ)單元取出的指令字節(jié)送指令隊(duì)列寄存器。

BIU內(nèi)部結(jié)構(gòu)由三部分組成:第一部分是20位地址加法器和4個(gè)16位段寄存器CS、DS、SS、ES,功能是計(jì)算并生成20位指令操作碼的物理地址;第二部分是總線控制邏輯電路,是三態(tài)門(mén)控制的三組總線輸入/輸出電路,是CPU與外界聯(lián)系的惟一通道;第三部分是指令隊(duì)列寄存器,是按照“先入先出”工作原則組織起來(lái)的一組寄存器,用于順序存放指令代碼。8086的指令隊(duì)列為6個(gè)字節(jié),8088的指令隊(duì)列為4個(gè)字節(jié)??偩€控制電路從存儲(chǔ)器取得的指令字節(jié),依次進(jìn)入指令隊(duì)列。指令隊(duì)列操作規(guī)則為:當(dāng)指令隊(duì)列中有1個(gè)指令字節(jié)后,該字節(jié)就能進(jìn)入EU實(shí)施指令譯碼并執(zhí)行;指令隊(duì)列中空出2個(gè)(對(duì)于8086)或空出1個(gè)(對(duì)于8088)字節(jié)時(shí),BIU自動(dòng)去存儲(chǔ)器取指令字節(jié)(稱為“取指”),直至填滿為止;在順序控制程序執(zhí)行中,BIU取指是不需要EU提出任何請(qǐng)求的,并且每一次都能取2個(gè)字節(jié),在一個(gè)總線周期內(nèi)完成一個(gè)規(guī)則字的操作。如果遇到程序轉(zhuǎn)移指令,EU將向BIU發(fā)出轉(zhuǎn)移信息,BIU將到轉(zhuǎn)移目標(biāo)去取指。當(dāng)轉(zhuǎn)移到一個(gè)以奇數(shù)地址開(kāi)始的存儲(chǔ)單元時(shí),BIU會(huì)自動(dòng)地從這個(gè)奇數(shù)地址取一個(gè)字節(jié),然后從其后的偶數(shù)地址開(kāi)始,按規(guī)則字取指令字節(jié)。與此同時(shí),指令隊(duì)列中原有的待執(zhí)行指令字節(jié)會(huì)全部被清除,裝入轉(zhuǎn)移指令目標(biāo)地址的指令代碼,實(shí)現(xiàn)程序的轉(zhuǎn)移。由于指令隊(duì)列中至少總有1個(gè)指令字節(jié),因此EU執(zhí)行指令和BIU從存儲(chǔ)器去取指令字節(jié)就可以同時(shí)進(jìn)行。EU在執(zhí)行指令時(shí),如果指令要求對(duì)存儲(chǔ)器或I/O設(shè)備存取數(shù)據(jù),那么BIU將在現(xiàn)行取指周期完成后的下一個(gè)總線周期,對(duì)存儲(chǔ)器或I/O設(shè)備開(kāi)展存取操作,傳送的數(shù)據(jù)代碼經(jīng)BIU送至EU。當(dāng)BIU不使用系統(tǒng)總線時(shí),系統(tǒng)總線可以供微機(jī)系統(tǒng)其它邏輯部件使用。

2.執(zhí)行單元EU

執(zhí)行單元EU的功能是解釋并執(zhí)行指令。EU由控制單元電路、算術(shù)邏輯單元、CPU內(nèi)部通用寄存器組三部分組成??刂茊卧娐酚米鲗⒅噶铌?duì)列取來(lái)的指令字節(jié)進(jìn)行譯碼并形成各種定時(shí)控制號(hào),它能對(duì)EU的各個(gè)邏輯電路實(shí)施特定的定時(shí)操作;算術(shù)邏輯單元用于實(shí)現(xiàn)算術(shù)邏輯運(yùn)算、尋址時(shí)有效地址的計(jì)算;CPU內(nèi)部通用寄存器組用于存放參加運(yùn)算的操作數(shù)、運(yùn)算結(jié)果及運(yùn)算結(jié)果的標(biāo)志,以及存放存儲(chǔ)單元邏輯地址的偏移量。它包括10個(gè)16位寄存器AX、BX、CX、DX、SP、BP、SI、DI、IP、FLAGS。

8086CPU內(nèi)部除指令隊(duì)列總線為8位外,其余內(nèi)部數(shù)據(jù)總線均為16位。2.1.28086/8088寄存器的結(jié)構(gòu)圖2-148086/8088寄存器

通用寄存器(General-PurposeRegister)共8個(gè),分為三組。

(1)數(shù)據(jù)寄存器:數(shù)據(jù)寄存器有4個(gè),分別為累加器AX、基址寄存器BX、計(jì)數(shù)寄存器CX和數(shù)據(jù)寄存器DX。每個(gè)數(shù)據(jù)寄存器又可以分為高字節(jié)H和低字節(jié)L,作8位數(shù)據(jù)寄存器單獨(dú)使用。通用寄存器的功能有兩個(gè):其一為通用功能,用于算術(shù)邏輯運(yùn)算中存放操作數(shù)或操作結(jié)果;其二為專用于隱含使用功能,如表2-3所示。表2-3通用寄存器的隱含使用(2)指針類寄存器:指針類寄存器有兩個(gè),分別為堆棧指針SP和基址指針BP。它們和SS配對(duì)使用,用于存放堆棧段中某一存儲(chǔ)單元邏輯地址偏移量。它們的區(qū)別是:SP存放堆棧段棧頂?shù)刂返钠屏浚看纬?入)棧后,SP將自動(dòng)加(減)2;BP存放堆棧段中一個(gè)數(shù)據(jù)區(qū)基地址的偏移量,每次出(入)棧后,BP不變。(3)變址類寄存器:變址類寄存器有兩個(gè),分別是源變址寄存器SI和目的變址寄存器DI。它們的功能與指令類型有關(guān)。在數(shù)據(jù)傳送類指令中,它們和DS配對(duì)使用,用于存放數(shù)據(jù)段中某一存儲(chǔ)單元邏輯地址偏移量。在串操作指令中,它們有明顯的區(qū)別:SI和DS配對(duì)使用,用作源操作數(shù)邏輯地址偏移量,允許段跨越;DI和ES配對(duì)使用,用作目的操作數(shù)邏輯地址偏移量,不允許段跨越。SI和DI作數(shù)據(jù)寄存器使用時(shí),只能以字為單位進(jìn)行操作。

(4)段寄存器(SegmentRegister)共4個(gè),分別是CS(代碼段)、DS(數(shù)據(jù)段)、SS(堆棧段)、ES(附加段),用于存放各段基址。

控制寄存器(ControlRegister)共2個(gè),分別是指令指針I(yè)P和標(biāo)志寄存器FLAGS。IP中存放著B(niǎo)IU要取的下一條指令字節(jié)的邏輯地址偏移量。在指令字節(jié)取出后,IP將自動(dòng)加1,指向下一條指令字節(jié)的地址。IP的值不能用數(shù)據(jù)傳送指令賦予。轉(zhuǎn)移類指令可以改變IP的值,使程序朝轉(zhuǎn)移的目標(biāo)執(zhí)行。FLAGS用于存放算術(shù)邏輯運(yùn)算結(jié)果的狀態(tài)以及控制指令操作的動(dòng)向,在8086/8088中,只用了9位,如圖2-15所示,各位定義如表2-4所示。9個(gè)標(biāo)志位分為兩大類:狀態(tài)標(biāo)志位6個(gè),控制標(biāo)志位3個(gè)。圖2-158086/8088標(biāo)志寄存器FLAGSD1、D3、D5和D12~D15沒(méi)有使用。表2-4標(biāo)志位定義2.28086/8088存儲(chǔ)器2.2.1規(guī)則存放和非規(guī)則存放

只有8086存儲(chǔ)器才有規(guī)則存放和非規(guī)則存放的概念。

多字節(jié)數(shù)據(jù)從偶數(shù)地址開(kāi)始存放,稱為規(guī)則存放;從奇數(shù)地址開(kāi)始存放,稱為非規(guī)則存放。例如在圖2-1所示的存儲(chǔ)器中,存放在32368H單元的字?jǐn)?shù)據(jù)9AB1H就屬于規(guī)則存放,該字也叫規(guī)則字,因?yàn)榈刂?2368H為偶數(shù)。0B156H是非規(guī)則字,9AB1H和0B156H發(fā)生了重疊存放。圖2-1規(guī)則字、非規(guī)則字的存放與重疊2.2.21MB內(nèi)存的分體結(jié)構(gòu)和尋址為了方便(既能進(jìn)行字節(jié)操作又能進(jìn)行字操作),8086的1MB存儲(chǔ)空間分成了兩個(gè)512KB的存儲(chǔ)體,又稱為存儲(chǔ)庫(kù)。其中偶數(shù)地址的512K個(gè)存儲(chǔ)單元命名為偶數(shù)存儲(chǔ)體(低位存儲(chǔ)庫(kù));奇數(shù)地址的512K個(gè)存儲(chǔ)單元命名為奇數(shù)存儲(chǔ)體(高位存儲(chǔ)庫(kù))。每個(gè)庫(kù)的存儲(chǔ)容量為219×8位,有19條地址線A18~A0和8條數(shù)據(jù)線D7~D0。每個(gè)庫(kù)都有1條芯片選擇線CS(ChipSelect)供選中本庫(kù)使用。當(dāng)CS=0時(shí)本庫(kù)被選中,可供CPU讀/寫(xiě);當(dāng)CS=1時(shí)本芯片與CPU的三總線斷開(kāi),CPU無(wú)法讀/寫(xiě)。8086CPU為了實(shí)現(xiàn)對(duì)兩個(gè)庫(kù)的選中和讀/寫(xiě),三組總線之間應(yīng)當(dāng)采用如下的接法:CPU的地址總線A19~A1接庫(kù)的地址線A18~A0。CPU的A0接低位庫(kù)CS的端(A0=0時(shí)正好選中偶數(shù)存儲(chǔ)體,可讓CPU進(jìn)行低位字節(jié)操作);另外使用1條CPU的控制線BHE(ByteHighEnable,高位字節(jié)允許)接高位庫(kù)的CS端(BHE=0低電平有效時(shí),恰好奇數(shù)存儲(chǔ)體選中,可讓CPU進(jìn)行高位字節(jié)操作)。CPU數(shù)據(jù)總線的高8位D15~D8接高位庫(kù)的數(shù)據(jù)線D7~D0

;CPU數(shù)據(jù)總線的低8位D7~D0接低位庫(kù)的數(shù)據(jù)線D7~D0。8086存儲(chǔ)器連接圖如圖2-3所示。圖2-380861MB存儲(chǔ)器分體結(jié)構(gòu)CPU通過(guò)地址線A0和控制線BHE進(jìn)行尋址。在執(zhí)行字節(jié)操作時(shí),如果操作數(shù)在偶數(shù)存儲(chǔ)單元中,則8086CPU的A0端輸出0,選中低位庫(kù);BHE輸出1,斷開(kāi)高位庫(kù)。隨后由A19~A1發(fā)出地址信號(hào)選中低位庫(kù)中某一存儲(chǔ)單元,在讀/寫(xiě)命令(圖中未畫(huà)出)控制下經(jīng)CPU的D7~D0完成字節(jié)數(shù)據(jù)的傳送。?如果字節(jié)操作數(shù)在奇數(shù)存儲(chǔ)單元中,則有BHE=0選中高位庫(kù),A0=1斷開(kāi)低位庫(kù),CPU的D7~D0不起作用,而由D15~D8傳送字節(jié)數(shù)據(jù)。BHE和A0對(duì)存儲(chǔ)體的選擇功能如表2-1所示。表2-18086存儲(chǔ)器高低位庫(kù)選擇CPU執(zhí)行字操作時(shí),要區(qū)分是規(guī)則字還是非規(guī)則字。規(guī)則字的低位字節(jié)存放在低位庫(kù)的偶數(shù)地址中,高位字節(jié)存放在緊跟其后的高位庫(kù)的奇數(shù)地址中。訪問(wèn)規(guī)則字時(shí),CPU的A0端和BHE端同時(shí)輸出0,高低位庫(kù)同時(shí)被選中。在一個(gè)總線周期內(nèi),低位庫(kù)的數(shù)據(jù)經(jīng)D7~D0傳送;高位庫(kù)的數(shù)據(jù)經(jīng)D15~D8傳送,從而完成一個(gè)字的讀/寫(xiě)操作。

如果是非規(guī)則字,則其低位字節(jié)存放在高位庫(kù)的奇數(shù)地址中,高位字節(jié)存放在緊隨其后的低位庫(kù)偶數(shù)地址中。一個(gè)字的讀/寫(xiě)操作需要兩個(gè)總線周期才能完成。在第1個(gè)總線周期內(nèi),CPU發(fā)出BHE=0,A0=1的信號(hào),選中低位字節(jié)所在的高位庫(kù),經(jīng)D15~D8傳送低位字節(jié)。在第2個(gè)總線周期內(nèi),CPU發(fā)出BHE=1,A0=0的信號(hào),選中高位字節(jié)所在的低位庫(kù),經(jīng)D7~D0傳送高位字節(jié)。8086的1MB存儲(chǔ)器采用分體結(jié)構(gòu),為規(guī)則字的讀/寫(xiě)在1個(gè)總線周期內(nèi)完成創(chuàng)造了條件。2.2.3存儲(chǔ)器分段組織

存儲(chǔ)單元的數(shù)量太多,為了使用和管理方便,將存儲(chǔ)器分段是一種行之有效的方法。只不過(guò)不同微機(jī)系統(tǒng)的存儲(chǔ)器,分段的方法不相同,段的大小沒(méi)有統(tǒng)一的規(guī)定。8086/8088系統(tǒng)中1段長(zhǎng)度最大為64KB,含有64K=65536個(gè)連續(xù)存儲(chǔ)單元。

【例2-1】設(shè)64KB為1段,8086/80881?MB內(nèi)存可分為首尾相連且互不重疊的多少段?解可以分為1MB/64KB=16段,如圖2-5所示。圖2-5段劃分圖2-64段劃分圖2-764KB段內(nèi)地址

每段第1個(gè)存儲(chǔ)單元的地址叫做段的首址,或起始地址。不是任意一個(gè)存儲(chǔ)單元都能充當(dāng)首址,只有低4位為0的那些存儲(chǔ)單元才有資格成為首址,即00000H、00010H、00020H、…、FFFF0H等。這些單元共有1?MB/16?B=65536個(gè)。

首址的高16位叫做段的基址,在8086/8088CPU中,設(shè)置了4個(gè)16位段寄存器CS、DS、SS和ES,分別用于存放代碼段、數(shù)據(jù)段、堆棧段和附加段的基址。程序?qū)?個(gè)段寄存器指出的邏輯段中實(shí)施指令操作。如果要從其它段而不是當(dāng)前段中存取信息,必須首先要找到操作段寄存器的值,然后到該段中去尋找操作數(shù)。2.2.4物理地址和邏輯地址

物理地址又叫實(shí)際地址,是存儲(chǔ)單元按順序依次排列的實(shí)際存在地址。每個(gè)存儲(chǔ)單元的物理地址是惟一的,使用20位二進(jìn)制數(shù)或5位十六進(jìn)制數(shù)表示。1MB存儲(chǔ)器有1048576個(gè)存儲(chǔ)單元,物理地址編號(hào)為00000H~FFFFFH。考慮到16位微機(jī)中寄存器為16位,要表示20位物理地址,常常改用邏輯地址表示。邏輯地址是使用16位段基址和16位偏移量表示的地址,記為“段基址:偏移量”。物理地址和邏輯地址之間的關(guān)系為物理地址=段基址×10H+偏移量把段基址左移4位,低4位補(bǔ)0,再加上偏移量,得到該單元的物理地址。如圖2-8所示。圖2-8物理地址和邏輯地址【例2-2】設(shè)某單元所在段的基址是C018H,偏移量是FE7FH,該單元的邏輯地址是C018H:FE7FH,物理地址=C0180H+FE7FH=CFFFFH,如圖2-9所示。

一個(gè)存儲(chǔ)單元的物理地址對(duì)應(yīng)多個(gè)邏輯地址,例如01234H存儲(chǔ)單元,其邏輯地址既可以表示為0100H:0234H,也可以表示為0120H:0034H,如圖2-10所示。圖2-9C018H:FE7FH單元圖2-10邏輯地址【例2-3】把邏輯地址5182H:A1F4H存放在內(nèi)存20B56H單元,存儲(chǔ)圖為【例2-4】設(shè)字?jǐn)?shù)據(jù)5ABFH放在數(shù)據(jù)段3E613H單元中,數(shù)據(jù)段基址為3E5DH,現(xiàn)在要求把字?jǐn)?shù)據(jù)5ABFH的物理地址3E613H存入10028H單元,畫(huà)出存儲(chǔ)圖。解

20位物理地址不宜直接存放在存儲(chǔ)器中,應(yīng)改用邏輯地址存放。偏移量=3E613H-3E5DH×10H=0043H將3E5DH:0043H存入,存儲(chǔ)圖為【例2-5】8086某存儲(chǔ)單元地址為5182H:A1F4H,問(wèn)該單元所處段的首單元和末單元的物理地址是多少?解首單元物理地址:51820H。末單元物理地址:51820H+FFFFH=6181FH?!纠?-6】某數(shù)據(jù)區(qū)起始地址為5182H:A1F4H,該數(shù)據(jù)區(qū)由20個(gè)字組成,問(wèn)該數(shù)據(jù)區(qū)的首單元和末單元物理地址是多少?第20個(gè)字存放在哪個(gè)單元中?是規(guī)則存放還是非規(guī)則存放?解數(shù)據(jù)區(qū)首單元物理地址=5182H×10H+A1F4H=5BA14H

數(shù)據(jù)區(qū)末單元物理地址=5BA14H+27H=5BA3BH

第20個(gè)字存放在5BA3AH單元,為規(guī)則存放。

當(dāng)把一個(gè)存儲(chǔ)單元的邏輯地址存放在內(nèi)存中時(shí),應(yīng)當(dāng)遵循兩條原則:其一,偏移量進(jìn)入低地址,段基址進(jìn)入高地址;其二,低字節(jié)進(jìn)入低地址,高字節(jié)進(jìn)入高地址。表2-2邏輯地址中的段寄存器和偏移量寄存器注:主存中的有效地址EA的構(gòu)成=BX/BP+DI/SI+8/16位偏移量。EA包含的成分不同則尋址方式不同。2.2.5段寄存器的初始化

段寄存器的值除了CS外,都必須在程序一開(kāi)始用數(shù)據(jù)傳送指令送入。給寄存器賦值可以建立起該邏輯段,便于后面的操作使用。在程序中間,也可以給已經(jīng)賦過(guò)值的DS、SS、ES再次使用數(shù)據(jù)傳送指令賦值,重新建立一些新段,這種做法稱為再定位。

CS的值不能用數(shù)據(jù)傳送指令寫(xiě)在程序中。當(dāng)執(zhí)行一個(gè)編制好的程序前,微機(jī)會(huì)自動(dòng)給CS和IP賦一個(gè)合適的值。在執(zhí)行轉(zhuǎn)移類、中斷類指令時(shí),微機(jī)會(huì)把指令格式指定的值賦給CS和IP。在復(fù)位時(shí),CS自動(dòng)成為FFFFH,IP自動(dòng)成為0000H。2.3堆棧操作圖2-11堆棧示意圖堆棧按照先入后出的原則工作,SP指針總是指向棧頂?!纠?-7】設(shè)SS=3000H,SP=2000H,DX=4A86H。將DX推入堆棧及將堆棧內(nèi)容彈出到SI和DI操作示意如圖2-12所示。圖2-12入(出)棧及SP的自動(dòng)減(加)2功能2.48086/8088功能引線和引腳表2-58086功能引線和引腳2.4.18086/8088引腳名稱和信號(hào)

8086/8088采用40條引腳DIP(雙列直插)封裝,引腳分配如圖2-16所示。8086CPU使用的時(shí)鐘脈沖頻率按型號(hào)不同有3種:8086用5MHz,8086-1用8MHz,8086-2用10MHz。8088CPU使用的時(shí)鐘脈沖頻率為4.77MHz,基本總線周期為4個(gè)T狀態(tài),平均每秒可執(zhí)行65萬(wàn)條指令。圖2-168086/8088引腳分配(括號(hào)內(nèi)為最大方式引腳)2.4.28086/8088引腳功能表2-68086CPU引腳定義表2-68086CPU引腳定義1.地址/數(shù)據(jù)總線AD15~AD0AD15~AD0是分時(shí)復(fù)用的雙重總線。在每個(gè)總線周期開(kāi)始的第1個(gè)時(shí)鐘周期T1時(shí),傳送存儲(chǔ)單元或I/O端口的低16位地址,AD15~AD0作地址總線使用。在T2時(shí)鐘周期內(nèi)成為浮置或高阻狀態(tài),為傳送數(shù)據(jù)信號(hào)做準(zhǔn)備。在T3時(shí)鐘周期內(nèi)用于雙向傳送16位數(shù)據(jù)信號(hào)。在T4時(shí)鐘周期結(jié)束總線周期。地址信號(hào)為三態(tài)輸出信號(hào),由CPU發(fā)往存儲(chǔ)器或I/O端口作尋址用。地址總線為單向總線。數(shù)據(jù)信號(hào)為三態(tài)雙向信號(hào),在CPU與存儲(chǔ)器、I/O端口之間傳送。傳送方向是由存儲(chǔ)器、I/O端口送至CPU,還是由CPU送至存儲(chǔ)器、I/O端口,由CPU發(fā)出的讀/寫(xiě)命令決定。數(shù)據(jù)總線為雙向總線。

地址總線和數(shù)據(jù)總線以及其它一些功能線分時(shí)復(fù)用的設(shè)計(jì)思路,使得8086/8088能夠用40條引腳實(shí)現(xiàn)73種功能。但由此帶來(lái)的問(wèn)題是,必須采用地址鎖存的方式鎖存住僅在T1時(shí)鐘周期內(nèi)出現(xiàn)的地址信號(hào)。為此8086/8088需要一條控制線ALE和地址鎖存器芯片,例如74LS373/8282等。在不采用分時(shí)復(fù)用的CPU中,就可以不要ALE及鎖存器芯片了。2.地址/狀態(tài)總線A19/S6~A16/S3A19/S6~A16/S3是分時(shí)復(fù)用的雙重總線。在T1時(shí)鐘周期內(nèi)傳送存儲(chǔ)單元的高4位地址,與A15~A0組成20位物理地址;I/O端口操作中置“0”。在T2時(shí)鐘周期內(nèi)成為浮置或高阻狀態(tài),為輸出狀態(tài)信號(hào)S6~S3做準(zhǔn)備。在T3時(shí)鐘周期內(nèi)輸出S6~S3三態(tài)信號(hào),在T4時(shí)鐘周期用作結(jié)束總線周期。

S6~S3用于指示CPU的狀態(tài)信息。其中S6恒為低電平,表示8086/8088當(dāng)前與總線連通;S5用于指出中斷允許標(biāo)志狀態(tài)位IF的當(dāng)前值;S4S3編碼表示當(dāng)前正在使用哪個(gè)段寄存器,見(jiàn)表2-7。當(dāng)系統(tǒng)總線處于“保持響應(yīng)”狀態(tài)時(shí),S6~S3被浮置成高阻狀態(tài)。表2-7S4S3編碼表8086/8088有20條地址總線,用于訪問(wèn)存儲(chǔ)器時(shí),可尋址220B=1MB存儲(chǔ)單元;訪問(wèn)I/O設(shè)備時(shí),可用低16位A15~A0尋址216=64K個(gè)I/O端口,或用低8位A7~A0尋址28=256個(gè)I/O端口。

3.控制總線

(1)MN/MX:最小/最大方式控制線,用于控制8086/8088的工作方式。當(dāng)MN/MX接+5V時(shí),8086/8088處于最小工作方式,由8086CPU提供系統(tǒng)所需的所有控制信號(hào),8282提供地址信號(hào),8086或8286提供數(shù)據(jù)總線驅(qū)動(dòng)信號(hào);當(dāng)MN/MX接地時(shí),8086/8088處于最大工作方式,由8288提供系統(tǒng)所需的所有控制信號(hào),8282提供地址信號(hào),8286提供或接收數(shù)據(jù)信號(hào),此外還可以根據(jù)需要接入?yún)f(xié)處理器芯片和其它I/O接口電路芯片。在8086/8088的控制總線中,有一部分總線與工作方式無(wú)關(guān),有一部分總線與工作方式有關(guān),引腳名稱有所不同。(2)不受MN/影響的控制總線共有7條,分別是BHE/S7、RD、RESET、READY、TEST、NMI和INTR,敘述如下。①BHE/S7:高字節(jié)允許/狀態(tài)S7,三態(tài)輸出信號(hào),分時(shí)復(fù)用雙重控制線。在總線周期T1時(shí)鐘周期內(nèi)輸出BHE,低電平有效,使讀/寫(xiě)的8位數(shù)據(jù)允許在AD15~AD8上傳送。和A0信號(hào)配合可實(shí)現(xiàn)8086字節(jié)操作或者字操作。在T2時(shí)鐘周期內(nèi),輸出狀態(tài)S7信號(hào)。在DMA方式下,BHE/S7引腳為高阻狀態(tài)。當(dāng)前8086芯片設(shè)計(jì)中沒(méi)有給狀態(tài)S7賦予定義,作備用。8088的第34腳不是BHE/S7而是SS0(HIGH):最小方式時(shí)為SS0,和DT/R、M/IO一起決定了當(dāng)前總線周期的讀/寫(xiě)操作;最大方式時(shí)恒為高電平。其編碼組合如表2-8所示。表2-88088DT/R與第28、34腳編碼表②RD:三態(tài)輸出“讀”命令信號(hào)。當(dāng)RD=0時(shí),表示CPU要對(duì)存儲(chǔ)器、I/O端口執(zhí)行讀操作。是從存儲(chǔ)單元讀取數(shù)據(jù)還是從I/O端口讀取數(shù)據(jù),由控制線M/IO(對(duì)8086)或M/IO(對(duì)8088)決定。在“讀”操作總線周期內(nèi),RD在T2、T3和Tw時(shí)鐘周期均是低電平有效,T1時(shí)鐘周期因地址鎖存與RD無(wú)關(guān),T4時(shí)RD無(wú)效,恢復(fù)總線原狀態(tài)。當(dāng)系統(tǒng)總線進(jìn)入“保持響應(yīng)”周期時(shí),RD被浮置成高阻狀態(tài)。③RESET:復(fù)位信號(hào),高電平有效,輸入。外接時(shí)鐘發(fā)生器8284復(fù)位輸出端,要求復(fù)位脈沖寬度不得少于4個(gè)時(shí)鐘周期,接通電源復(fù)位時(shí)不能小于50μs。復(fù)位后CPU內(nèi)部寄存器狀態(tài)如表2-9所示。注意CS的復(fù)位值為FFFFH,指令指針I(yè)P的復(fù)位值為0000H。因此,8086/8088在復(fù)位后執(zhí)行的第一條指令代碼,就在內(nèi)存FFFF0H處。通常從FFFF0H開(kāi)始放1條無(wú)條件轉(zhuǎn)移JMP指令,轉(zhuǎn)移到執(zhí)行程序入口地址處。程序正常運(yùn)行時(shí),RESET引線處于低電平。表2-9復(fù)位后內(nèi)部寄存器狀態(tài)④READY:準(zhǔn)備好了信號(hào),高電平有效,輸入。這是一個(gè)由存儲(chǔ)器、I/O端口向CPU發(fā)出反映自身狀態(tài)的信號(hào)。當(dāng)READY=0時(shí),表示存儲(chǔ)器、I/O端口還沒(méi)有準(zhǔn)備好,請(qǐng)CPU處于等待狀態(tài)。CPU在每個(gè)總線周期的T3時(shí)鐘周期采樣READY引腳,如果檢測(cè)到READY為低電平則在T3后插入1個(gè)或幾個(gè)Tw,直到READY變?yōu)楦唠娖?,才進(jìn)入T4狀態(tài)。當(dāng)READY=1時(shí),表示存儲(chǔ)器、I/O端口已經(jīng)準(zhǔn)備好了,立刻允許進(jìn)行一次數(shù)據(jù)傳送。T4時(shí)鐘周期內(nèi)完成數(shù)據(jù)傳送過(guò)程,當(dāng)前總線周期宣告結(jié)束。⑤TEST:等待測(cè)試信號(hào),低電平有效,輸入。在多處理器環(huán)境下,8086/8088CPU執(zhí)行WAIT指令時(shí),每隔5個(gè)時(shí)鐘周期采樣TEST引腳。若TEST=0,則表示結(jié)束CPU等待,CPU能夠繼續(xù)執(zhí)行下一條指令;若TEST=1,則要求CPU停止取下一條指令進(jìn)入等待狀態(tài),WAIT指令將被重復(fù)執(zhí)行直到TEST=0為止。⑥NMI:非屏蔽中斷請(qǐng)求信號(hào),高電平有效,輸入。使用上升沿觸發(fā),不能用軟件屏蔽,也不受IF標(biāo)志位的影響。當(dāng)此信號(hào)出現(xiàn)時(shí),CPU在完成當(dāng)前指令后,轉(zhuǎn)入執(zhí)行非屏蔽中斷服務(wù)程序。⑦?INTR:可屏蔽中斷請(qǐng)求信號(hào),高電平有效,輸入。使用電平觸發(fā),在每條指令的最后一個(gè)時(shí)鐘周期時(shí),CPU采樣該引腳。若INTR=0,則表示無(wú)中斷申請(qǐng)信號(hào)出現(xiàn),CPU繼續(xù)執(zhí)行下一條指令;若INTR=1,則表示有中斷申請(qǐng)信號(hào)出現(xiàn),CPU有可能響應(yīng),也可能不響應(yīng)。當(dāng)IF=1(可使用STI指令使IF=1)時(shí),CPU將響應(yīng)中斷,根據(jù)中斷類型碼轉(zhuǎn)入執(zhí)行相應(yīng)的中斷服務(wù)程序;當(dāng)IF=0(可使用CLI指令使IF=0)時(shí),CPU不響應(yīng)中斷,繼續(xù)執(zhí)行自己的主程序,不響應(yīng)中斷又稱為中斷屏蔽。(3)8086/8088CPU第24腳~第31腳在最小方式下和最大方式下工作有不同的控制/狀態(tài)功能。先敘述最小方式下各引腳的控制功能。①I(mǎi)NTA:中斷響應(yīng)信號(hào),低電平有效,輸出。用于CPU對(duì)INTR的響應(yīng)。INTA信號(hào)有兩個(gè)連續(xù)的負(fù)脈沖,其中第1個(gè)表示CPU允許中斷源提出的中斷申請(qǐng);第2個(gè)負(fù)脈沖讓中斷類型碼放入數(shù)據(jù)總線,CPU接收到中斷類型碼,經(jīng)過(guò)計(jì)算確定中斷服務(wù)程序的入口地址,就可以轉(zhuǎn)入為中斷源服務(wù)。整個(gè)中斷響應(yīng)周期內(nèi),INTA變?yōu)榈碗娖?。②ALE:地址鎖存允許信號(hào),高電平有效,輸出。在每一個(gè)總線周期的T1時(shí)鐘周期內(nèi)由CPU發(fā)出正脈沖,表示AD15~AD0和A19/S6~A16/S3上出現(xiàn)的是地址信號(hào),T1下降沿將地址信號(hào)鎖存入地址鎖存器。在T2~T4時(shí)鐘周期內(nèi)為低電平,表示AD15~AD0和A19/S6~A16/S3上出現(xiàn)的是數(shù)據(jù)和狀態(tài)信號(hào)。ALE需要連接地址鎖存器的輸入控制端。圖2-17給出了時(shí)鐘脈沖、ALE和AD15~AD0的變化時(shí)序。圖2-17地址鎖存③DEN:數(shù)據(jù)允許信號(hào),低電平有效,三態(tài)輸出。微機(jī)系統(tǒng)使用8286/8287作數(shù)據(jù)總線收發(fā)器時(shí),就是總線收發(fā)器的控制信號(hào)。DEN=0時(shí)表明允許總線收發(fā)器發(fā)送或接收一個(gè)數(shù)據(jù),反之不允許發(fā)送或接收。在DMA方式下時(shí)被浮置為高阻狀態(tài)。④DT/R:數(shù)據(jù)發(fā)送/接收信號(hào),高低電平有不同的功能,三態(tài)輸出。用于控制8286/8287數(shù)據(jù)傳送的方向。DT/R=1時(shí)表明數(shù)據(jù)發(fā)送有效;DT/R=0時(shí)表明數(shù)據(jù)接收有效。在DMA方式下被浮置為高阻狀態(tài)。⑤M/IO:存儲(chǔ)器、I/O端口選擇信號(hào),三態(tài)輸出。對(duì)8086,M/IO=1時(shí)CPU訪問(wèn)存儲(chǔ)器;M/IO=0時(shí)CPU訪問(wèn)I/O端口。DMA方式時(shí)被浮置為高阻狀態(tài)。8088用M/IO。⑥WR:寫(xiě)允許信號(hào),低電平有效,三態(tài)輸出。為0時(shí)表示CPU在進(jìn)行寫(xiě)操作,允許數(shù)據(jù)從CPU進(jìn)入存儲(chǔ)器、I/O端口;為1時(shí)表示禁止寫(xiě)。是對(duì)存儲(chǔ)器進(jìn)行寫(xiě)操作還是對(duì)I/O端口進(jìn)行寫(xiě)操作,由M/IO控制線決定。在一個(gè)寫(xiě)總線周期內(nèi),WR在T2、T3、Tw時(shí)鐘周期內(nèi)有效。DMA方式時(shí)被浮置為高阻狀態(tài)。⑤M/IO:存儲(chǔ)器、I/O端口選擇信號(hào),三態(tài)輸出。對(duì)8086,M/IO=1時(shí)CPU訪問(wèn)存儲(chǔ)器;M/IO=0時(shí)CPU訪問(wèn)I/O端口。DMA方式時(shí)被浮置為高阻狀態(tài)。8088用/IO。⑥WR:寫(xiě)允許信號(hào),低電平有效,三態(tài)輸出。為0時(shí)表示CPU在進(jìn)行寫(xiě)操作,允許數(shù)據(jù)從CPU進(jìn)入存儲(chǔ)器、I/O端口;為1時(shí)表示禁止寫(xiě)。是對(duì)存儲(chǔ)器進(jìn)行寫(xiě)操作還是對(duì)I/O端口進(jìn)行寫(xiě)操作,由M/IO控制線決定。在一個(gè)寫(xiě)總線周期內(nèi),WR在T2、T3、Tw時(shí)鐘周期內(nèi)有效。DMA方式時(shí)被浮置為高阻狀態(tài)。⑦HLDA:保持響應(yīng)信號(hào),高電平有效,輸出。當(dāng)HLDA=1時(shí),表明CPU決定響應(yīng)其它主模塊對(duì)使用總線的請(qǐng)求,CPU所有三態(tài)門(mén)引腳呈高阻狀態(tài),讓出總線控制權(quán)。⑧HOLD:保持請(qǐng)求信號(hào),高電平有效,輸入。微機(jī)系統(tǒng)其它邏輯部件向CPU提出的要求獲得總線控制權(quán)的請(qǐng)求信號(hào)。為1時(shí)表明提出這一申請(qǐng);為0時(shí)表明沒(méi)有申請(qǐng)。當(dāng)有申請(qǐng)時(shí),CPU是否允許,由HLDA信號(hào)反映。如果CPU決定讓出總線控制權(quán),則在當(dāng)前總線周期執(zhí)行過(guò)程中的T4時(shí)鐘周期內(nèi)由HLDA引腳發(fā)出響應(yīng),提出請(qǐng)求的邏輯部件隨之獲得了總線的控制和使用。HOLD和HLDA在CPU整個(gè)讓權(quán)過(guò)程中始終為高電平。一旦總線請(qǐng)求的邏輯部件使用完畢,將使HOLD和HLDA變?yōu)榈碗娖?,CPU收到HOLD低電平信號(hào),知該邏輯部件放棄了對(duì)總線的控制,將重新占有總線。HOLD和HLDA引腳常和數(shù)值數(shù)據(jù)協(xié)處理器8087、I/O協(xié)處理器8089連接,用于傳送總線請(qǐng)求和總線應(yīng)答信號(hào)。(4)最大方式下的控制總線(第24腳~第31腳)各引腳的功能如下。①Q(mào)S1,QS0:指令隊(duì)列狀態(tài)信號(hào),輸出。它們的組合表示本總線周期之前的一個(gè)時(shí)鐘周期指令隊(duì)列的狀態(tài),以便外部協(xié)處理器對(duì)8086/8088內(nèi)部指令隊(duì)列進(jìn)行跟蹤。QS1、QS0的編碼組合如表2-10所示。表2-10QS1、QS0組合編碼表② :總線周期狀態(tài)信號(hào),三態(tài)輸出。表示8086/8088外部總線周期操作類型,如表2-11所示。 連接到總線控制器8288,使8288產(chǎn)生存儲(chǔ)器讀/寫(xiě)命令,I/O端口讀/寫(xiě)命令和中斷響應(yīng)。表2-11操作功能表③LOCK:總線優(yōu)先權(quán)鎖定信號(hào),低電平有效,三態(tài)輸出。這個(gè)信號(hào)用于封鎖微機(jī)系統(tǒng)其它邏輯部件對(duì)總線的控制權(quán)。當(dāng)LOCK=0時(shí)(可使用指令前綴LOCK實(shí)現(xiàn)),只有8086/8088CPU才有總線的控制權(quán),其它任何邏輯部件都無(wú)法取得總線的控制權(quán)。在任何一條指令前加上LOCK指令前綴,該指令一執(zhí)行便有LOCK=0,且整條指令執(zhí)行中LOCK都保持低電平,有效地保證了指令執(zhí)行全過(guò)程。在保持響應(yīng)期間,LOCK為高阻狀態(tài)。④RQ/GT1,RQ/GT0:總線請(qǐng)求/允許信號(hào)輸入/輸出,雙向。有效時(shí)表明多處理器系統(tǒng)中其它邏輯部件請(qǐng)求使用總線,或者接收CPU對(duì)總線請(qǐng)求的響應(yīng),其信號(hào)特征是請(qǐng)求和響應(yīng)功能用同一根控制線實(shí)現(xiàn),僅方向相反。總線訪問(wèn)的請(qǐng)求/響應(yīng)時(shí)序由請(qǐng)求、響應(yīng)和支配三個(gè)階段完成,如圖2-18所示。協(xié)處理器首先發(fā)出RQ申請(qǐng),向8086/8088CPU要求占有總線,而CPU在本次總線周期的T4時(shí)鐘周期或下一個(gè)總線周期的T1時(shí),輸出脈寬為T(mén)的GT信號(hào)響應(yīng)協(xié)處理器的申請(qǐng)。從下一個(gè)時(shí)鐘周期開(kāi)始,CPU釋放總線,由協(xié)處理器支配總線直至使用結(jié)束,結(jié)束時(shí)協(xié)處理器又有一個(gè)脈寬為T(mén)的RQ信號(hào)送CPU,由CPU恢復(fù)占有總線。RQ/GT1,RQ/GT0可以同時(shí)接兩個(gè)協(xié)處理器,規(guī)定RQ/GT0優(yōu)先級(jí)別高。圖2-18總線請(qǐng)求/允許信號(hào)4.其它信號(hào)VCC:+5V±10%電源,輸入。GND:地線,有2條。CLK:時(shí)鐘脈沖輸入,要求占空比為1∶3。2.4.38088CPU與8086CPU的異同表2-128088與8086的不同之處2.58086/8088微機(jī)系統(tǒng)2.5.1兩種工作方式下的系統(tǒng)配置表2-13最小配置和最大配置1.最小配置最小配置產(chǎn)生條件為CPU第33腳MN/MX接+5V。最小配置為組成一臺(tái)8086/8088微型計(jì)算機(jī)少得不能再少的系統(tǒng)配置,通常為小型的單處理器系統(tǒng)。典型的最小配置系統(tǒng)結(jié)構(gòu)如圖2-19所示,其中時(shí)鐘發(fā)生器8284為CPU提供時(shí)鐘脈沖。8282是一個(gè)帶三態(tài)門(mén)的8級(jí)D觸發(fā)器集成芯片,要鎖存20位地址信號(hào)和BHE信號(hào),需3片8282。8088CPU只有12位地址信號(hào)需要鎖存,所以只需要2片8282。?8286是一片帶三態(tài)雙向的8位數(shù)據(jù)放大器,且有雙向傳送數(shù)據(jù)的功能,最小配置時(shí)按需要選用,系統(tǒng)帶存儲(chǔ)器極少時(shí)可以不要。圖2-19最小方式典型結(jié)構(gòu)

2.最大配置最大配置產(chǎn)生條件為CPU第33腳MN/MX接0V。最大配置為組成一臺(tái)多功能8086/8088微型計(jì)算機(jī)時(shí)的系統(tǒng)配置。它的突出特點(diǎn)是擁有2個(gè)或3個(gè)處理器。為此,系統(tǒng)面臨的是主處理器和協(xié)處理器之間的協(xié)調(diào),以及對(duì)總線的分時(shí)共享控制。8288總線控制器能夠較好地處理這類問(wèn)題。典型的最大配置系統(tǒng)結(jié)構(gòu)如圖2-20所示。圖2-20最大方式典型結(jié)構(gòu)2.68086/8088總線操作和工作時(shí)序圖2-29指令周期、總線周期和T狀態(tài)2.6.1指令周期、總線周期和時(shí)鐘周期

CPU執(zhí)行不同指令所需的時(shí)間是不一樣的。原因有兩個(gè)方面:其一是指令本身不等長(zhǎng),最短的指令僅有1字節(jié),大部分指令有2字節(jié),最長(zhǎng)的指令有7字節(jié)。指令字節(jié)越長(zhǎng),執(zhí)行起來(lái)需要的時(shí)間也越長(zhǎng)。其二是指令中的操作數(shù)在不同的地方,有的是立即數(shù),有的在內(nèi)部寄存器、存儲(chǔ)器或I/O端口中。比較起來(lái),存放在內(nèi)部寄存器中的操作數(shù)就在EU內(nèi),因此執(zhí)行速度最快,而在存儲(chǔ)器中的其次,在I/O端口中的最慢。立即數(shù)隨指令代碼進(jìn)入指令隊(duì)列等待EU執(zhí)行,也在CPU中,因此也是最快的。從指令執(zhí)行的時(shí)間上看,指令的最短執(zhí)行時(shí)間是兩

溫馨提示

  • 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)論