8086CPU結(jié)構(gòu)_第1頁(yè)
8086CPU結(jié)構(gòu)_第2頁(yè)
8086CPU結(jié)構(gòu)_第3頁(yè)
8086CPU結(jié)構(gòu)_第4頁(yè)
8086CPU結(jié)構(gòu)_第5頁(yè)
已閱讀5頁(yè),還剩123頁(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)介

1、第2章 8086CPU結(jié)構(gòu),2.1 8086微處理器內(nèi)部基本結(jié)構(gòu) 2.2 8086總線的工作周期 2.3 8086微處理器外部基本引腳與工作模式 2.4 8086微處理器的存儲(chǔ)器組織 2.4 8086微處理器的存儲(chǔ)器組織 2.6 Intel 80X86系列微處理器簡(jiǎn)介 2.7例題解析,2.1 8086微處理器內(nèi)部基本結(jié)構(gòu),2.1.1 8086CPU的內(nèi)部結(jié)構(gòu),8088的內(nèi)部結(jié)構(gòu)從功能分成兩個(gè)單元 總線接口單元BIU管理8088與系統(tǒng)總線的接口,負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問(wèn) 執(zhí)行單元EU負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算 兩個(gè)單元相互獨(dú)立,分別完成各自操作 兩個(gè)單元可以并行執(zhí)行,實(shí)現(xiàn)指令取指和

2、執(zhí)行的流水線操作,8088的內(nèi)部結(jié)構(gòu),1 2 3 4,內(nèi)部暫存器,IP,ES,SS,DS,CS,控制電路,外部總線,控制電路,ALU,標(biāo)志寄存器,AH AL,BH BL,CH CL,DH DL,SP,BP,SI,DI,通用寄存器,地址加法器,指令隊(duì)列,執(zhí)行部件 (EU),總線接口部件 (BIU),16位,20位,8位,8位,段寄存器,串行處理,流水處理,BUS:BUSY BUSY BUSY BUSY,BUS:BUSY BUSY BUSY BUSY BUSY BUSY,1. 執(zhí)行部件, EU的組成 算術(shù)邏輯運(yùn)算單元 它是1個(gè)16位的運(yùn)算器,可用于8位、16位二進(jìn)制算術(shù)和邏輯運(yùn)算,也可按指令的尋址

3、方式計(jì)算尋址存儲(chǔ)器所需的16位偏移量。 通用寄存器組 它包括4個(gè)16位的數(shù)據(jù)寄存器AX、BX、CX、DX和4個(gè)16位指針與變址寄存器SP、BP與SI、DI。 標(biāo)志寄存器 它是1個(gè)16位的寄存器,用來(lái)反映CPU運(yùn)算的狀態(tài)特征和存放某些控制標(biāo)志。 數(shù)據(jù)暫暫存寄存器,它協(xié)助ALU完成運(yùn)算,暫存參加運(yùn)算的數(shù)據(jù)。 EU控制電路 它負(fù)責(zé)從BIU的指令隊(duì)列緩沖器中取指令,并對(duì)指令譯碼,根據(jù)指令要求向EU內(nèi)部各部件發(fā)出控制命令,以完成各條指令規(guī)定的功能。,2. 總線接口部件, BIU的組成 總線接口單元BIU由1個(gè)20位地址加法器、4個(gè)16位段寄存器、1個(gè)16位指令指針I(yè)P、指令隊(duì)列緩沖器和總線控制邏輯電路等

4、組成。8086的指令隊(duì)列由6個(gè)字節(jié)構(gòu)成。 地址加法器和段寄存器 地址加法器將16位的段寄存器內(nèi)容左移4位,與16位偏移地址相加,形成20位的物理地址。 16位指令指針I(yè)P 指令指針I(yè)P用來(lái)存放下一條要執(zhí)行指令在代碼段中的偏移地址。 指令隊(duì)列緩沖器 當(dāng)EU正在執(zhí)行指令中,且不需占用總線時(shí),BIU會(huì)自動(dòng)地進(jìn)行預(yù)取指令操作,將所取得的指令按先后次序存入1個(gè)6字節(jié)的指令隊(duì)列寄存器,該隊(duì)列寄存器按“先進(jìn)先出”的方式工作,并按順序取到EU中執(zhí)行。 總線控制邏輯電路,2.1.2 8086CPU寄存器結(jié)構(gòu),8086的寄存器都為16位,分為: 通用寄存器8AX/BX/CX/DX BP/SP DI/SI 指令指針

5、寄存器1IP 標(biāo)志寄存器1PSW 段寄存器4 CS/SS/DS/ES 掌握通用寄存器的作用,熟悉PSW中各個(gè)標(biāo)志的含義 切實(shí)理解存儲(chǔ)器組織和存儲(chǔ)空間分段的概念,8086 CPU內(nèi)部寄存器如圖2.2所示。,通用寄存器,8086的16位通用寄存器是: AXBXCXDX SIDIBPSP 其中,前4個(gè)數(shù)據(jù)寄存器都還可以分成高8位和低8位兩個(gè)獨(dú)立的寄存器,它們是: AH BH CH DH AL BL CL DL 對(duì)其中某個(gè)8位寄存器的操作,并不影響它所對(duì)應(yīng)的另外一個(gè)8位寄存器。,數(shù)據(jù)寄存器,數(shù)據(jù)寄存器用來(lái)存放計(jì)算的結(jié)果和操作數(shù) 每個(gè)寄存器又有它們各自的專用目的: AX16位累加器,使用頻度最高,用于算

6、術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信息等;AL為8位累加器。 BX基址寄存器,常用來(lái)做基址指針,指向一批連續(xù)存放操作數(shù)的基地址。 CX計(jì)數(shù)器,作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器。 DX數(shù)據(jù)寄存器,用來(lái)存放外設(shè)端口的16位地址,或雙字長(zhǎng)數(shù)據(jù)的高16位。,變址寄存器,變址寄存器常用于存儲(chǔ)器尋址時(shí)提供地址 SI是源變址寄存器 DI是目的變址寄存器 在串操作類指令中,SI和DI具有特別的功能,指針寄存器,指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù) SP為堆棧指針寄存器,指示棧頂?shù)钠频刂贰P不能再用于其他目的,具有專用性 BP為基址指針寄存器,表示數(shù)據(jù)在堆棧段中的基地址 SP/BP寄存器與SS段寄存器聯(lián)合使用以確

7、定堆棧段中的存儲(chǔ)單元地址 詳見(jiàn)堆棧操作指令,指令指針寄存器IP,指令指針寄存器IP,指示代碼段中指令的偏移地址 它與代碼段寄存器CS聯(lián)用,確定下一條指令的物理地址 計(jì)算機(jī)通過(guò)CS : IP寄存器來(lái)取指,從而控制指令序列的執(zhí)行流程 IP寄存器是一個(gè)專用寄存器,用戶不能直接訪問(wèn)。,標(biāo)志寄存器,標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式。 8086處理器中各種常用的標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器FLAGS(也稱程序狀態(tài)字PSW寄存器)。,OF,11,15 12,DF,10,IF,9,TF,8,SF,7,ZF,6,5,AF,4,3,PF,2,1,CF,0,控制,反映結(jié)果狀態(tài),反應(yīng)運(yùn)算過(guò)程

8、,標(biāo)志的作用,指令的執(zhí)行與標(biāo)志有很大關(guān)系。 標(biāo)志分成兩類: 狀態(tài)標(biāo)志用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將自動(dòng)地改變它。 CF OF AF SF ZF PF 控制標(biāo)志可由用戶根據(jù)需要用指令進(jìn)行設(shè)置,用于控制處理器的具體工作方式。 DF IF TF,進(jìn)位標(biāo)志CF(Carry Flag),當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置1,即CF = 1;否則 CF=0。 例如(以8位運(yùn)算為例,8088中為16位): 3AH + 7CHB6H沒(méi)有進(jìn)位:CF=0 AAH + 7CH26H有進(jìn)位:CF=1,(1),符號(hào)標(biāo)志SF(Sign Flag),運(yùn)算結(jié)果最高位為1,則S

9、F=1;否則SF=0。 例如: 3AH + 7CHB6H最高位D71:SF=1 86H + 7CH00H最高位D70:SF=0 有符號(hào)數(shù)利用最高有效位(MSB)來(lái)表示它的符號(hào)。所以,運(yùn)算結(jié)果的MSB與符號(hào)標(biāo)志SF相一致。,(1),奇偶標(biāo)志PF(Parity Flag),當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為零或偶數(shù)時(shí),PF=1;否則PF=0(奇校驗(yàn))。 例如: 3AH + 7CHB6H10110110B, 結(jié)果中有5個(gè)1,是奇數(shù),則 PF=0 注意:PF標(biāo)志僅反映最低8位中“1”的個(gè)數(shù)是偶或奇,即使是進(jìn)行16位字操作。,溢出標(biāo)志OF(Overflow Flag),若算術(shù)運(yùn)算的結(jié)果有溢出,則OF=1

10、;否則 OF0。例如: 3AH + 7CHB6H產(chǎn)生溢出:OF=1 AAH + 7CH26H沒(méi)有溢出:OF=0 問(wèn)題: 什么是溢出? 溢出和進(jìn)位有什么區(qū)別? 處理器怎么處理,程序員如何運(yùn)用? 如何判斷是否溢出?,(1),輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag),運(yùn)算時(shí)D3位(低半字節(jié))有進(jìn)位或借位時(shí),AF=1;否則AF=0。 例如: 3AH + 7CHB6H D3向前有進(jìn)位:AF=1 這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算的調(diào)整,用戶一般不必關(guān)心。,方向標(biāo)志DF(Direction Flag),用于串操作指令中,控制地址的變化方向: 設(shè)置DF0,串操作后存儲(chǔ)器地址

11、自動(dòng)增量(增址) ; 設(shè)置DF1,串操作后存儲(chǔ)器地址自動(dòng)減量(減址) 。 CLD 指令復(fù)位方向標(biāo)志:DF0 STD 指令置位方向標(biāo)志:DF1,中斷允許標(biāo)志IF(Interrupt-enable Flag),用于控制外部可屏蔽中斷是否可以被處理器響應(yīng): 設(shè)置IF1,則允許中斷; 設(shè)置IF0,則禁止中斷。 CLI 指令復(fù)位中斷標(biāo)志:IF0 STI 指令置位中斷標(biāo)志:IF1,陷阱標(biāo)志TF(Trap Flag),用于控制處理器是否進(jìn)入單步執(zhí)行方式: 設(shè)置TF0,處理器正常工作; 設(shè)置TF1,處理器每執(zhí)行一條指令就中斷一次,中斷編號(hào)為 1 (稱單步中斷) TF 也被稱為單步標(biāo)志。 單步執(zhí)行和單步調(diào)試 利

12、用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試。 這種逐條指令調(diào)試程序的方法就是單步調(diào)試。,2.2 8086總線的工作周期,時(shí)鐘周期(Clock Cycle):執(zhí)行指令的一系列操作都是在時(shí)鐘脈沖CLK的統(tǒng)一控制下逐步進(jìn)行的,一個(gè)時(shí)鐘脈沖時(shí)間稱為一個(gè)時(shí)鐘周期(Clock Cycle)。時(shí)鐘周期由計(jì)算機(jī)的主頻決定,是CPU的定時(shí)基準(zhǔn),例如,8086的主頻為5MHz則1個(gè)時(shí)鐘為200ns。 8086CPU與外部交換信息總是通過(guò)總線進(jìn)行的。CPU從存儲(chǔ)器或外設(shè)存或取一個(gè)字節(jié)或字所需的時(shí)間稱為總線周期(Bus Cycle)。一個(gè)基本的總線周期由四個(gè)時(shí)鐘周期組成,分別稱為T1、T2、T3和T4時(shí)鐘周期,或T狀態(tài)(S

13、tate)。 指令周期:一條指令的執(zhí)行包括取指令、分析指令和執(zhí)行指令。一條指令從開(kāi)始取指令到最后執(zhí)行完畢所需的時(shí)間稱為一個(gè)指令周期 。,8086/8088系統(tǒng)總線時(shí)序 有關(guān)概念介紹,主頻,外頻,倍頻系數(shù), CPU是在時(shí)鐘信號(hào)的控制下工作,時(shí)鐘信號(hào)是一個(gè)按一定電壓幅度, 一定時(shí)間間隔發(fā)出的脈沖信號(hào),CPU所有的操作都以時(shí)鐘信號(hào)為基準(zhǔn) CPU 按嚴(yán)格的時(shí)間標(biāo)準(zhǔn)發(fā)出地址,控制信號(hào), 存儲(chǔ)器、接口也按嚴(yán)格的時(shí)間標(biāo)準(zhǔn)送出或接受數(shù)據(jù). 這個(gè)時(shí)間標(biāo)準(zhǔn)就是由時(shí)鐘信號(hào)確定。 CPU的主頻或內(nèi)頻指CPU的內(nèi)部工作頻率。 主頻是表示CPU工作速度的重要指標(biāo), 在 CPU其它性能指標(biāo)相同時(shí), 主頻越高, CPU 的速

14、度越快, CPU的外頻或系統(tǒng)頻率指CPU的外部總線頻率。 倍頻系數(shù)指CPU主頻和外頻的相對(duì)比例系數(shù)。 8088/8086/80286/80386的主頻和外頻值相同; 從80486DX2開(kāi)始,CPU的主頻和外頻不再相同, 將外頻按一定的比例倍頻后得到CPU的主頻,即: CPU主頻 = 外頻 倍頻系數(shù) PC機(jī)各子系統(tǒng)時(shí)鐘(存儲(chǔ)系統(tǒng),顯示系統(tǒng),總線等)是 由系統(tǒng)頻率按照一定的比例分頻得到。,外頻性能指標(biāo) 8088CPU 頻率f :1秒內(nèi)的脈沖個(gè)數(shù) 4.77MHz 周期 T = 1/ f 210ns 占空比:高電平在一個(gè)周期中的比例 1: 3,CLK,T,相鄰兩個(gè)脈沖之間的時(shí)間間隔, 稱為一個(gè)時(shí)鐘周期

15、,又稱 T狀態(tài)(T周期)。,T狀態(tài),每個(gè)T狀態(tài)包括:下降沿、低電平、上升沿、高電平,CPU通過(guò)總線完成與存儲(chǔ)器、I/O端口之間的操作, 這些操作統(tǒng)稱為總線操作。,總線周期,執(zhí)行一個(gè)總線操作所需要的時(shí)間稱為總線周期。 一個(gè)基本的總線周期通常包含 4 個(gè)T狀態(tài), 按時(shí)間的先后順序分別稱為T1、T2、T3、T4,執(zhí)行一條指令所需要的時(shí)間稱為指令周期。 執(zhí)行一條指令的時(shí)間: 是取指令、執(zhí)行指令、取操作數(shù)、存放結(jié)果所需時(shí)間的總和。 用所需的時(shí)鐘周期數(shù)表示。,指令周期,例 MOV BX, AX 2個(gè)T周期 MUL BL 7077個(gè)T周期,2.3 8086微處理器外部基本引腳與工作模式,兩種組態(tài)構(gòu)成兩種不同

16、規(guī)模的應(yīng)用系統(tǒng) 最小組態(tài)模式 構(gòu)成小規(guī)模的應(yīng)用系統(tǒng) 8088本身提供所有的系統(tǒng)總線信號(hào) 最大組態(tài)模式 構(gòu)成較大規(guī)模的應(yīng)用系統(tǒng),例如可以接入數(shù)值協(xié)處理器8087 8088和總線控制器8288共同形成系統(tǒng)總線信號(hào),兩種組態(tài)利用MN/MX*引腳區(qū)別 MN/MX*接高電平為最小組態(tài)模式 MN/MX*接低電平為最大組態(tài)模式 兩種組態(tài)下的內(nèi)部操作并沒(méi)有區(qū)別,IBM PC/XT采用最大組態(tài) 本書以最小組態(tài)展開(kāi)基本原理,2.3.2 8086微處理器外部基本引腳,兩種模式下含義不同的引腳信號(hào) 最小模式下的引腳信號(hào),數(shù)據(jù)和地址引腳 讀寫控制引腳 中斷請(qǐng)求和響應(yīng)引腳 總線請(qǐng)求和響應(yīng)引腳 其它引腳,8088,GND

17、A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK GND,VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET,引腳解釋準(zhǔn)備:看一下I/O端口、存儲(chǔ)器讀周期時(shí)序,1. 數(shù)據(jù)和地址引腳,AD7AD0(Address/Data) 地址/數(shù)據(jù)分時(shí)復(fù)用引腳,雙向、三態(tài) 在訪問(wèn)存儲(chǔ)器或外設(shè)的總線操作周期中,這些引腳在第一個(gè)時(shí)鐘周期輸出存儲(chǔ)器或I/O端口的低8位地址A

18、7A0 其他時(shí)間用于傳送8位數(shù)據(jù)D7D0,1. 數(shù)據(jù)和地址引腳(續(xù)1),A15A8(Address) 中間8位地址引腳,輸出、三態(tài) 這些引腳在訪問(wèn)存儲(chǔ)器或外設(shè)時(shí),提供全部20位地址中的中間8位地址A15A8,1. 數(shù)據(jù)和地址引腳(續(xù)2),A19/S6A16/S3(Address/Status) 地址/狀態(tài)分時(shí)復(fù)用引腳,輸出、三態(tài) 這些引腳在訪問(wèn)存儲(chǔ)器的第一個(gè)時(shí)鐘周期輸出高4位地址A19A16 在訪問(wèn)外設(shè)的第一個(gè)時(shí)鐘周期全部輸出低電平無(wú)效 其他時(shí)間輸出狀態(tài)信號(hào)S6S3,2. 讀寫控制引腳,ALE(Address Latch Enable) 地址鎖存允許,輸出、三態(tài)、高電平有效 ALE引腳高有效時(shí)

19、,表示復(fù)用引腳:AD7AD0和A19/S6A16/S3正在傳送地址信息 由于地址信息在這些復(fù)用引腳上出現(xiàn)的時(shí)間很短暫,所以系統(tǒng)可以利用ALE引腳將地址鎖存起來(lái),2. 讀寫控制引腳(續(xù)1),IO/M*(Input and Output/Memory) I/O或存儲(chǔ)器訪問(wèn),輸出、三態(tài) 該引腳輸出高電平時(shí),表示CPU將訪問(wèn)I/O端口,這時(shí)地址總線A15A0提供16位I/O口地址 該引腳輸出低電平時(shí),表示CPU將訪問(wèn)存儲(chǔ)器,這時(shí)地址總線A19A0提供20位存儲(chǔ)器地址,2. 讀寫控制引腳(續(xù)2),WR*(Write) 寫控制,輸出、三態(tài)、低電平有效 有效時(shí),表示CPU正在寫出數(shù)據(jù)給存儲(chǔ)器或I/O端口 R

20、D*(Read) 讀控制,輸出、三態(tài)、低電平有效 有效時(shí),表示CPU正在從存儲(chǔ)器或I/O端口讀入數(shù)據(jù),2. 讀寫控制引腳(續(xù)3),IO/M*、WR*和RD*是最基本的控制信號(hào) 組合后,控制4種基本的總線周期,例: I/O端口、存儲(chǔ)器寫周期時(shí)序,T1,T2,T3,T4,A19A16 /S6S3,IO/M,A15A8,AD7AD0,ALE,WR,DT/R,DEN,CLK,S6 S3,A7 A0,A19A16,D7 D0,高IO 低Mem,8088,GND A14 A13 A12 A11 A10 A9 A8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI INTR CLK G

21、ND,VCC A15 A16/S3 A17/S4 A18/S5 A19/S6 SSO MN/MX RD HOLD HLDA WR IO/M DT/R DEN ALE INTA TEST READY RESET,2. 讀寫控制引腳(續(xù)4),READY 存儲(chǔ)器或I/O口就緒,輸入、高電平有效 在總線操作周期中,8088 CPU會(huì)在第3個(gè)時(shí)鐘周期的前沿測(cè)試該引腳 如果測(cè)到高有效,CPU直接進(jìn)入第4個(gè)時(shí)鐘周期 如果測(cè)到無(wú)效,CPU將插入等待周期Tw CPU在等待周期中仍然要監(jiān)測(cè)READY信號(hào),有效則進(jìn)入第4個(gè)時(shí)鐘周期,否則繼續(xù)插入等待周期Tw。,2. 讀寫控制引腳(續(xù)5),DEN*(Data Enab

22、le) 數(shù)據(jù)允許,輸出、三態(tài)、低電平有效 有效時(shí),表示當(dāng)前數(shù)據(jù)總線上正在傳送數(shù)據(jù),可利用他來(lái)控制對(duì)數(shù)據(jù)總線的驅(qū)動(dòng) DT/R*(Data Transmit/Receive) 數(shù)據(jù)發(fā)送/接收,輸出、三態(tài) 該信號(hào)表明當(dāng)前總線上數(shù)據(jù)的流向 高電平時(shí)數(shù)據(jù)自CPU輸出(發(fā)送) 低電平時(shí)數(shù)據(jù)輸入CPU(接收),2. 讀寫控制引腳(續(xù)6),SS0*(System Status 0) 最小組態(tài)模式下的狀態(tài)輸出信號(hào) 它與IO/M*和DT/R*一道,通過(guò)編碼指示CPU在最小組態(tài)下的8種工作狀態(tài): 1. 取指5. 中斷響應(yīng) 2. 存儲(chǔ)器讀6. I/O讀 3. 存儲(chǔ)器寫7. I/O寫 4. 過(guò)渡狀態(tài)8. 暫停,對(duì)比,3

23、. 中斷請(qǐng)求和響應(yīng)引腳,INTR(Interrupt Request) 可屏蔽中斷請(qǐng)求,輸入、高電平有效 有效時(shí),表示請(qǐng)求設(shè)備向CPU申請(qǐng)可屏蔽中斷 該請(qǐng)求的優(yōu)先級(jí)別較低,并可通過(guò)關(guān)中斷指令CLI清除標(biāo)志寄存器中的IF標(biāo)志、從而對(duì)中斷請(qǐng)求進(jìn)行屏蔽,3. 中斷請(qǐng)求和響應(yīng)引腳(續(xù)1),INTA*(Interrupt Acknowledge) 可屏蔽中斷響應(yīng),輸出、低電平有效 有效時(shí),表示來(lái)自INTR引腳的中斷請(qǐng)求已被CPU響應(yīng),CPU進(jìn)入中斷響應(yīng)周期 中斷響應(yīng)周期是連續(xù)的兩個(gè),每個(gè)都發(fā)出有效響應(yīng)信號(hào),以便通知外設(shè)他們的中斷請(qǐng)求已被響應(yīng)、并令有關(guān)設(shè)備將中斷向量號(hào)送到數(shù)據(jù)總線,3. 中斷請(qǐng)求和響應(yīng)引腳

24、(續(xù)2),NMI(Non-Maskable Interrupt) 不可屏蔽中斷請(qǐng)求,輸入、上升沿有效 有效時(shí),表示外界向CPU申請(qǐng)不可屏蔽中斷 該請(qǐng)求的優(yōu)先級(jí)別高于INTR,并且不能在CPU內(nèi)被屏蔽 當(dāng)系統(tǒng)發(fā)生緊急情況時(shí),可通過(guò)他向CPU申請(qǐng)不可屏蔽中斷服務(wù),4. 總線請(qǐng)求和響應(yīng)引腳,HOLD 總線保持(即總線請(qǐng)求),輸入、高電平有效 有效時(shí),表示總線請(qǐng)求設(shè)備向CPU申請(qǐng)占有總線 該信號(hào)從有效回到無(wú)效時(shí),表示總線請(qǐng)求設(shè)備對(duì)總線的使用已經(jīng)結(jié)束,通知CPU收回對(duì)總線的控制權(quán),4. 總線請(qǐng)求和響應(yīng)引腳(續(xù)1),HLDA(HOLD Acknowledge) 總線保持響應(yīng)(即總線響應(yīng)),輸出、高電平有效

25、 有效時(shí),表示CPU已響應(yīng)總線請(qǐng)求并已將總線釋放 此時(shí)CPU的地址總線、數(shù)據(jù)總線及具有三態(tài)輸出能力的控制總線將全面呈現(xiàn)高阻,使總線請(qǐng)求設(shè)備可以順利接管總線 待到總線請(qǐng)求信號(hào)HOLD無(wú)效,總線響應(yīng)信號(hào)HLDA也轉(zhuǎn)為無(wú)效,CPU重新獲得總線控制權(quán),5. 其它引腳,RESET 復(fù)位請(qǐng)求,輸入、高電平有效 該信號(hào)有效,將使CPU回到其初始狀態(tài);當(dāng)他再度返回?zé)o效時(shí),CPU將重新開(kāi)始工作 8088復(fù)位后CSFFFFH、IP0000H,所以程序入口在物理地址FFFF0H,5. 其它引腳(續(xù)1),CLK(Clock) 時(shí)鐘輸入 系統(tǒng)通過(guò)該引腳給CPU提供內(nèi)部定時(shí)信號(hào)。8088的標(biāo)準(zhǔn)工作時(shí)鐘為5MHz IBM

26、PC/XT機(jī)的8088采用了4.77MHz的時(shí)鐘,其周期約為210ns,5. 其它引腳(續(xù)2),Vcc 電源輸入,向CPU提供5V電源 GND 接地,向CPU提供參考地電平 MN/MX*(Minimum/Maximum) 組態(tài)選擇,輸入 接高電平時(shí),8088引腳工作在最小組態(tài);反之,8088工作在最大組態(tài),5. 其它引腳(續(xù)3),TEST* 測(cè)試,輸入、低電平有效 該引腳與WAIT指令配合使用 當(dāng)CPU執(zhí)行WAIT指令時(shí),他將在每個(gè)時(shí)鐘周期對(duì)該引腳進(jìn)行測(cè)試:如果無(wú)效,則程序踏步并繼續(xù)測(cè)試;如果有效,則程序恢復(fù)運(yùn)行 也就是說(shuō),WAIT指令使CPU產(chǎn)生等待,直到引腳有效為止 在使用協(xié)處理器8087

27、時(shí),通過(guò)引腳和WAIT指令,可使8088與8087的操作保持同步,“引腳”小結(jié),CPU引腳是系統(tǒng)總線的基本信號(hào) 可以分成三類信號(hào): 8位數(shù)據(jù)線:D0D7 20位地址線:A0A19 控制線: ALE、IO/M*、WR*、RD*、READY INTR、INTA*、NMI,HOLD、HLDA RESET、CLK、Vcc、GND,有問(wèn)題!,“引腳”提問(wèn),提問(wèn)之一: CPU引腳是如何與外部連接的呢? 解答:總線形成,提問(wèn)之二: CPU引腳是如何相互配合, 實(shí)現(xiàn)總線操作、控制系統(tǒng)工作的呢? 解答:總線時(shí)序,最小組態(tài)的總線形成,(1)20位地址總線 采用3個(gè)三態(tài)透明鎖存器8282進(jìn)行鎖存和驅(qū)動(dòng) (2)8位數(shù)

28、據(jù)總線 采用數(shù)據(jù)收發(fā)器8286進(jìn)行驅(qū)動(dòng) (3)系統(tǒng)控制信號(hào) 由8088引腳直接提供,最大組態(tài)的引腳定義,8088的數(shù)據(jù)/地址等引腳在最大組態(tài)與最小組態(tài)時(shí)相同 有些控制信號(hào)不相同,主要是用于輸出操作編碼信號(hào),由總線控制器8288譯碼產(chǎn)生系統(tǒng)控制信號(hào): S2*、S1*、S0*3個(gè)狀態(tài)信號(hào) LOCK*總線封鎖信號(hào) QS1、QS0指令隊(duì)列狀態(tài)信號(hào) RQ*/GT0*、RQ*/GT1*2個(gè)總線請(qǐng)求/同意信號(hào),最大組態(tài)的總線形成, 系統(tǒng)地址總線 采用三態(tài)透明鎖存器74LS373和三態(tài)單向緩沖器74LS244 系統(tǒng)數(shù)據(jù)總線 通過(guò)三態(tài)雙向緩沖器74LS245形成和驅(qū)動(dòng) 系統(tǒng)控制總線 主要由總線控制器8288形成

29、 MEMR*、MEMW*、IOR*、IOW*、INTA*,(1) 20位地址總線的形成,采用3個(gè)8282進(jìn)行鎖存和驅(qū)動(dòng) Intel 8282是三態(tài)透明鎖存器,類似有Intel 8283和通用數(shù)字集成電路芯片373 三態(tài)輸出: 輸出控制信號(hào)有效時(shí),允許數(shù)據(jù)輸出; 無(wú)效時(shí),不允許數(shù)據(jù)輸出,呈高阻狀態(tài) 透明:鎖存器的輸出能夠跟隨輸入變化,有問(wèn)題!,補(bǔ)充:三態(tài)門和D觸發(fā)器,三態(tài)門和以D觸發(fā)器形成的鎖存器是微機(jī)接口電路中最常使用的兩類邏輯電路 三態(tài)門:功率放大、導(dǎo)通開(kāi)關(guān) 器件共用總線時(shí),一般使用三態(tài)電路: 需要使用總線的時(shí)候打開(kāi)三態(tài)門; 不使用的時(shí)候關(guān)閉三態(tài)門,使之處于高阻 D觸發(fā)器:信號(hào)保持,也可用作

30、導(dǎo)通開(kāi)關(guān),D觸發(fā)器,電平鎖存: 高電平通過(guò),低電平鎖存 上升沿鎖存: 通常用負(fù)脈沖觸發(fā)鎖存,負(fù)脈沖的上升沿,帶有異步置位清零的 電平控制的鎖存器,74LS273,具有異步清零的 TTL上升沿鎖存器,74LS373,具有三態(tài)輸出的 TTL電平鎖存器 LE 電平鎖存引腳 OE* 輸出允許引腳,Intel 8282,具有三態(tài)輸出的 TTL電平鎖存器 STB 電平鎖存引腳 OE* 輸出允許引腳,三態(tài)緩沖器,三態(tài)門具有單向 導(dǎo)通和三態(tài)的特性,T為低電平時(shí): 輸出為高阻抗(三態(tài)) T為高電平時(shí): 輸出為輸入的反相,74LS244,雙4位單向緩沖器 分成4位的兩組 每組的控制端連接在一起 控制端低電平有效

31、輸出與輸入同相,雙向三態(tài)緩沖器,三態(tài)門具有雙向 導(dǎo)通和三態(tài)的特性,OE*0,導(dǎo)通 T1 AB T0 AB OE*1,不導(dǎo)通,Intel 8286,8位雙向緩沖器 控制端連接在一起, 低電平有效 可以雙向?qū)?輸出與輸入同相,OE*0,導(dǎo)通 T1 AB T0 AB OE*1,不導(dǎo)通,74LS245,8位雙向緩沖器 控制端連接在一起, 低電平有效 可以雙向?qū)?輸出與輸入同相,E*0,導(dǎo)通 DIR1 AB DIR0 AB E*1,不導(dǎo)通,(2) 8位數(shù)據(jù)總線的形成,采用數(shù)據(jù)收發(fā)器8286進(jìn)行雙向驅(qū)動(dòng) Intel 8286是8位三態(tài)雙向緩沖器,類似功能的器件還有Intel 8287、通用數(shù)字集成電路

32、245等 另外,接口電路中也經(jīng)常使用三態(tài)單向緩沖器,例如通用數(shù)字集成電路244就是一個(gè)常用的雙4位三態(tài)單向緩沖器,(3) 系統(tǒng)控制信號(hào)的形成,由8088引腳直接提供 因?yàn)榛镜目刂菩盘?hào)8088引腳中都含有 例如:IO/M*、WR*、RD*等 其它信號(hào)的情況看詳圖,其它,1.存儲(chǔ)器的分段結(jié)構(gòu),8088有20條地址線, 最大可尋址空間為 2201MB, 可尋址的地址范圍為 00000HFFFFFH 該地址稱物理地址 硬件用20位的物理地址來(lái)對(duì)存儲(chǔ)單元進(jìn)行尋址,2.4.2 存儲(chǔ)器的分段結(jié)構(gòu)和物理地址的形成,存儲(chǔ)器的分段管理,由于8088中的地址寄存器都是16位的,用戶不能直接使用20位的物理地址,編

33、程時(shí)需要使用邏輯地址來(lái)尋址存儲(chǔ)單元。 邏輯地址由兩個(gè)16位數(shù)構(gòu)成,其形式為: 段的起始地址 : 段內(nèi)的偏移地址 (16位段地址) :( 16位偏移量),存儲(chǔ)器的分段管理,8088將存儲(chǔ)空間分為多個(gè)邏輯段(段Segment)來(lái)進(jìn)行管理,要求: 段的20位的起始地址(xxxxxH)其低4位必須為0(xxxx0H),所以可以將它們省略,然后用1個(gè)16位數(shù)來(lái)表示表示段的首地址。 每段長(zhǎng)度限216=64KB,所以段內(nèi)偏移地址可以用1個(gè)16位數(shù)來(lái)表示(xxxxH); 所以有: 段的起始地址 : 段內(nèi)的偏移地址 (16位段地址) :( 16位偏移量),存儲(chǔ)器的分段管理,邏輯地址的表示段地址:偏移地址,地址偏

34、移量(xxxxH),段首(xxxx0H),低址,段尾,某邏輯段 64KB,某尋址單元,存儲(chǔ)器的分段管理,1MB 最多可分為16個(gè)不重迭的段。實(shí)際上,兩個(gè)不同的邏輯段可以交疊,或者完全重疊。 一個(gè)存儲(chǔ)單元可以擁有多個(gè)邏輯地址,但只可能擁有一個(gè)唯一的物理地址。 例如:物理地址: 00200H 邏輯地址: 0000H : 0200H 邏輯地址: 0020H : 0000H,物理地址和邏輯地址,每個(gè)存儲(chǔ)單元都有一個(gè)唯一物理地址(00000HFFFFFH) ,20位,該地址在指令執(zhí)行時(shí)由地址加法器形成,并進(jìn)行硬件尋址。 地址加法器的具體做法:段地址左移4位,然后加上偏移地址就得到20位物理地址。 用戶編

35、程時(shí)采用邏輯地址,其形式為: 段的首地址 : 段內(nèi)偏移地址 它們由兩個(gè)16位的無(wú)符號(hào)數(shù)構(gòu)成 。 邏輯地址“1460H:100H” = 物理地址14700H,存儲(chǔ)器的分段結(jié)構(gòu)和物理地址的形成,段基址,0 0 0 0,3 2 1 0,15 0,偏移地址,基址加法器,物理地址,0,15,0,19,.,20000H,25F60H,25F61H,25F62H,25F63H,2000H,段基址,邏,輯,地,址,段內(nèi)偏移地址,5F62H,物理地址的形成,邏輯地址與物理地址,例 設(shè)代碼段寄存器CS的內(nèi)容為4232H,指令指針寄存器IP的內(nèi)容為0066H,即CS4232H,IP0066H,則訪問(wèn)代碼段存儲(chǔ)單元的

36、物理地址計(jì)算如下:,.,例 設(shè)數(shù)據(jù)段寄存器DS的內(nèi)容為1234H,基址寄存器BX的內(nèi)容為0022H,即DS1234H,BX0022H,則訪問(wèn)數(shù)據(jù)段存儲(chǔ)單元的物理地址計(jì)算如下:,數(shù)據(jù)的存儲(chǔ)格式,計(jì)算機(jī)中信息的單位有: 位(bit)、字節(jié)(byte)、 字(word)、雙字(double word)等 在存儲(chǔ)器中,信息的存儲(chǔ)單元是:字節(jié) 80 x86微處理器對(duì)多字節(jié)數(shù)據(jù)采用: 小端方式(little endian) 存儲(chǔ)的數(shù)據(jù)如果對(duì)齊邊界,則存取速度較快,8086的存儲(chǔ)格式,信息的表示單位,位bit:存儲(chǔ)一位二進(jìn)制數(shù):0或1。 字節(jié)Byte : 8位二進(jìn)制,D7D0。 字Word: 16位/2個(gè)字

37、節(jié),D15D0。 雙字Double:32位/4個(gè)字節(jié),D31D0。 最低有效位LSB(Least Significant Bit):指數(shù)據(jù)的最低位,即D0位; 最高有效位MSB(Most Significant Bit):指數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位。,存儲(chǔ)單元及其存儲(chǔ)內(nèi)容,每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào)存儲(chǔ)器地址 每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容 例如:0002H單元存放有一個(gè)數(shù)據(jù)34H 0002H34H,小端方式,多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占據(jù)多個(gè)連續(xù)的存儲(chǔ)單元: 存放時(shí),低字節(jié)存于低地址,高字節(jié)存于高地址; 多字節(jié)數(shù)據(jù)占據(jù)的地址空間用它的低地址來(lái)表示。 例如: 2號(hào)“

38、字”單元: 0002H = 1234H 2號(hào)“雙字”單元: 0002H = 78561234H 80 x86處理器的“低對(duì)低、高對(duì)高”的存儲(chǔ)形式,被稱為“小端方式”;相對(duì)應(yīng)還存在“大端方式(big endian)”。,數(shù)據(jù)的地址對(duì)齊,同一個(gè)存儲(chǔ)器地址可以表示為:字節(jié)單元地址、字單元地址、雙字單元地址等等(視指令的具體情況)。 如 mov word ptr 2000H, 10H mov byte ptr 2000H, 10H 將字單元安排在偶地址(xx.xx0 B),將雙字單元安排在模4地址(xxxx00 B)的做法,被稱為“地址對(duì)齊(Align)”。 對(duì)于地址不對(duì)齊的數(shù)據(jù),處理器訪問(wèn)時(shí),需要付

39、出額外的訪問(wèn)時(shí)間。 要取得較高的存取速度,應(yīng)該將數(shù)據(jù)的地址對(duì)齊。,2.5 8086微處理器的時(shí)序,時(shí)序(Timing)是指信號(hào)高低電平(有效或無(wú)效)變化及相互間的時(shí)間順序關(guān)系。 總線時(shí)序描述CPU引腳如何實(shí)現(xiàn)總線操作 CPU時(shí)序決定系統(tǒng)各部件間的同步和定時(shí),什么是總線操作?,8086微處理器的時(shí)序(續(xù)1),總線操作是指CPU通過(guò)總線對(duì)外的各種操作 8088的總線操作主要有: 存儲(chǔ)器讀、I/O讀操作 存儲(chǔ)器寫、I/O寫操作 中斷響應(yīng)操作 總線請(qǐng)求及響應(yīng)操作 CPU正在進(jìn)行內(nèi)部操作、并不進(jìn)行實(shí)際對(duì)外操作的空閑狀態(tài)Ti,什么是總線周期?,8086微處理器的時(shí)序(續(xù)2),總線周期是指CPU通過(guò)總線操作

40、與外部(存儲(chǔ)器或I/O端口)進(jìn)行一次數(shù)據(jù)交換的過(guò)程 指令周期是指一條指令經(jīng)取指、譯碼、讀寫操作數(shù)到執(zhí)行完成的過(guò)程 8088的基本總線周期需要4個(gè)時(shí)鐘周期,4個(gè)時(shí)鐘周期編號(hào)為T1、T2、T3和T4 總線周期中的時(shí)鐘周期也被稱作“T狀態(tài)” 時(shí)鐘周期的時(shí)間長(zhǎng)度就是時(shí)鐘頻率的倒數(shù) 當(dāng)需要延長(zhǎng)總線周期時(shí)需要插入等待狀態(tài)Tw,何時(shí)有總線周期?,演示,8086微處理器的時(shí)序(續(xù)3),任何指令的取指階段都需要存儲(chǔ)器讀總線周期,讀取的內(nèi)容是指令代碼 任何一條以存儲(chǔ)單元為源操作數(shù)的指令都將引起存儲(chǔ)器讀總線周期,任何一條以存儲(chǔ)單元為目的操作數(shù)的指令都將引起存儲(chǔ)器寫總線周期 只有執(zhí)行IN指令才出現(xiàn)I/O讀總線周期,執(zhí)

41、行OUT指令才出現(xiàn)I/O寫總線周期 CPU響應(yīng)可屏蔽中斷時(shí)生成中斷響應(yīng)總線周期,如何實(shí)現(xiàn)同步?,8086微處理器的時(shí)序(續(xù)4),總線操作中如何實(shí)現(xiàn)時(shí)序同步是關(guān)鍵 CPU總線周期采用同步時(shí)序: 各部件都以系統(tǒng)時(shí)鐘信號(hào)為基準(zhǔn) 當(dāng)相互不能配合時(shí),快速部件(CPU)插入等待狀態(tài)等待慢速部件(I/O和存儲(chǔ)器) CPU與外設(shè)接口常采用異步時(shí)序,它們通過(guò)應(yīng)答聯(lián)絡(luò)信號(hào)實(shí)現(xiàn)同步操作,最小組態(tài)的總線時(shí)序,本節(jié)展開(kāi)微處理器最基本的4種總線周期 存儲(chǔ)器讀總線周期 存儲(chǔ)器寫總線周期 I/O讀總線周期 I/O寫總線周期,存儲(chǔ)器寫總線周期,T1狀態(tài)輸出20位存儲(chǔ)器地址A19A0 IO/M*輸出低電平,表示存儲(chǔ)器操作; AL

42、E輸出正脈沖,表示復(fù)用總線輸出地址 T2狀態(tài)輸出控制信號(hào)WR*和數(shù)據(jù)D7D0 T3和Tw狀態(tài)檢測(cè)數(shù)據(jù)傳送是否能夠完成 T4狀態(tài)完成數(shù)據(jù)傳送,I/O寫總線周期,T1狀態(tài)輸出16位I/O地址A15A0 IO/M*輸出高電平,表示I/O操作; ALE輸出正脈沖,表示復(fù)用總線輸出地址 T2狀態(tài)輸出控制信號(hào)WR*和數(shù)據(jù)D7D0 T3和Tw狀態(tài)檢測(cè)數(shù)據(jù)傳送是否能夠完成 T4狀態(tài)完成數(shù)據(jù)傳送,存儲(chǔ)器讀總線周期,T1狀態(tài)輸出20位存儲(chǔ)器地址A19A0 IO/M*輸出低電平,表示存儲(chǔ)器操作; ALE輸出正脈沖,表示復(fù)用總線輸出地址 T2狀態(tài)輸出控制信號(hào)RD* T3和Tw狀態(tài)檢測(cè)數(shù)據(jù)傳送是否能夠完成 T4狀態(tài)前沿

43、讀取數(shù)據(jù),完成數(shù)據(jù)傳送,I/O讀總線周期,T1狀態(tài)輸出16位I/O地址A15A0 IO/M*輸出高電平,表示I/O操作; ALE輸出正脈沖,表示復(fù)用總線輸出地址 T2狀態(tài)輸出控制信號(hào)RD* T3和Tw狀態(tài)檢測(cè)數(shù)據(jù)傳送是否能夠完成 T4狀態(tài)前沿讀取數(shù)據(jù),完成數(shù)據(jù)傳送,插入等待狀態(tài)Tw,同步時(shí)序通過(guò)插入等待狀態(tài),來(lái)使速度差別較大的兩部分保持同步 在讀寫總線周期中,判斷是否插入Tw 1. 在T3的前沿檢測(cè)READY引腳是否有效 2. 如果READY無(wú)效,在T3和T4之間插入一個(gè)等效于T3的Tw ,轉(zhuǎn)1 3. 如果READY有效,執(zhí)行完該T狀態(tài),進(jìn)入T4狀態(tài),演示,最大組態(tài)的寫總線時(shí)序,最大組態(tài)的讀總線時(shí)序,什么是分時(shí)復(fù)用?,分

溫馨提示

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