第四章微處理器_第1頁
第四章微處理器_第2頁
第四章微處理器_第3頁
第四章微處理器_第4頁
第四章微處理器_第5頁
已閱讀5頁,還剩47頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第四章微處理器4.1微處理器概述微處理器(Microprocessor)是微機的運算及控制部件,也稱中央處理單元(CPU)。它本身不構(gòu)成獨立的工作系統(tǒng),因而它不能獨立地執(zhí)行程序。通常,微處理器由算術(shù)邏輯部件(ALU)、控制部件、寄存器組和片內(nèi)總線等幾部分組成,這些都在前面幾章中講過了有了一定的基礎(chǔ)。E83004.28086/8088微處理器的結(jié)構(gòu)

Intel系列的16位CPU雙列直插式封裝40根引腳工作頻率為4.77MHz~10MHz工作電源+5V

8088

8086:對外有16根數(shù)據(jù)線,20根地址線可尋址的內(nèi)存單元數(shù)220=1M內(nèi)存地址范圍00000~FFFFFH8088:

內(nèi)部寄存器、運算部件及內(nèi)部操作均按16位設(shè)計,

除對外數(shù)據(jù)線為8根外,其余與8086基本相同。

80868086/8088CPU的結(jié)構(gòu)

8086CPU從功能上可分為兩部分,即總線接口部件BIU(Bus1nterfaceUnit)和執(zhí)行部件EU(ExecutionUnit)。8086的內(nèi)部結(jié)構(gòu)如圖4-1所示DSESSSCSIP數(shù)據(jù)暫存器執(zhí)行部件控制電路指令譯碼器總線接口控制電路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊列PSW標(biāo)志寄存器EU運算器DSESSSCSIP數(shù)據(jù)暫存器執(zhí)行部件控制電路指令譯碼器總線接口控制電路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊列FR標(biāo)志寄存器EU運算器1.執(zhí)行部件

執(zhí)行部件(EU)的功能就是負(fù)責(zé)指令的執(zhí)行。從結(jié)構(gòu)圖4-1中,可見到執(zhí)行部件由下列部分組成:1)四個通用寄存器,即AX、BX、CX、DX;2)四個專用寄存器,即

基數(shù)指針寄存器——BP,堆棧指針寄存器——SP,源變址寄存器——SI,目的變址寄存器——DI;3)標(biāo)志寄存器(FR);4)算術(shù)邏輯部件(ALU)。8086/8088的EU有如下特點:

①、四個通用寄存器既可以作為16位寄存器使用,也可以作為8位寄存器使用。當(dāng)BX寄存器作為8位寄存器時,分為BH和BL,BH為高8位,BL為低8位。

②.AX寄存器也常稱為累加器,8086指令系統(tǒng)中有許多指令都是通過累加器的動作來執(zhí)行的。

③.加法器是算術(shù)邏輯的主要部件,絕大部分指令的執(zhí)行都由加法器來完成。

9個標(biāo)志按其作用分狀態(tài)標(biāo)志和控制標(biāo)志兩類

狀態(tài)標(biāo)志:OF、SF、ZF、AF、PF、CF

共6個記錄指令運行過程或運算結(jié)果的狀態(tài)信息??刂茦?biāo)志:DF、IF、TF

共3個

作用是控制CPU的操作。16位寄存器,用了其中的9位,其它7位在8086/8088中無意義。5).標(biāo)志寄存器FR各狀態(tài)標(biāo)志的含義:CF:進(jìn)位標(biāo)志(CarryFlag)反應(yīng)運算過程中,最高位是否產(chǎn)生進(jìn)位/借位。(最高位對字節(jié)操作指D7位,對字操作指D15位)加法,最高有效位有進(jìn)位CF=1,否則CF=0減法,最高有效位有借位CF=1,否則CF=0AF:輔助進(jìn)位標(biāo)志(AuxiliaryCarryFlag)反應(yīng)運算過程中,對字節(jié)操作D3位是否產(chǎn)生進(jìn)位。對字操作D7位是否產(chǎn)生進(jìn)位。有進(jìn)位或借位時,AF=1,否則AF=0。ZF:零標(biāo)志(ZeroFlag)反映運算結(jié)果是否為0。

運算結(jié)果為0時,ZF=1,否則ZF=0SF:符號標(biāo)志(SignFlag)

反映運算結(jié)果的符號位。對字節(jié)操作SF=D7對字操作SF=D15OF:溢出標(biāo)志(OverflowFlag)

反映運算過程中是否產(chǎn)生溢出。產(chǎn)生溢出,OF=1,否則為0。PF:奇偶標(biāo)志(ParityFlag)

反映運算結(jié)果中“1”的個數(shù)情況。有偶數(shù)個“1”時,PF=1,否則PF=0。

10110101被加數(shù)8位

+

10001111加數(shù)8位進(jìn)位1

111111

01000100和8位PSW標(biāo)志寄存器運算器標(biāo)志寄存器運算器被加數(shù)加數(shù)和進(jìn)位例

8位二進(jìn)制加法如下,給出各狀態(tài)標(biāo)志位的值

最高位D7位產(chǎn)生進(jìn)位:CF=1D3位產(chǎn)生進(jìn)位:AF=1相加的結(jié)果為44H,不為0:ZF=0結(jié)果的最高位為0:SF=0兩負(fù)數(shù)相加結(jié)果為正,溢出:OF=1結(jié)果中有2個1,偶數(shù)個1:PF=1100111各控制標(biāo)志作用(以后用到再介紹):DF:方向標(biāo)志(DirectionFlag)在串操作指令中控制地址變化的方向。當(dāng)DF=1時,地址遞減;當(dāng)DF=0時,地址遞增。IF:中斷標(biāo)志(IntermitFlag)當(dāng)IF=1時,允許CPU響應(yīng)可屏蔽中斷申請。當(dāng)IF=0時,禁止CPU響應(yīng)可屏蔽中斷申請。TF:跟蹤標(biāo)志(TrackFlag)為調(diào)試程序設(shè)置的一個控制標(biāo)志。當(dāng)TF=1時,CPU按單步方式執(zhí)行指令。2.總線接口部件BIU

構(gòu)成部分

4個16位段寄存器:

CS,DS,ES,SS16位IP指令指針寄存器

20位地址加法器指令隊列(8088為4字節(jié))(8086的指令隊列為6字節(jié))

總線控制電路:處理器與外界總線聯(lián)系的轉(zhuǎn)接電路。DSESSSCSIP數(shù)據(jù)暫存器PSW標(biāo)志寄存器執(zhí)行部件控制電路指令譯碼器AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組指令隊列總線接口控制電路運算器地址加法器8088編程結(jié)構(gòu)BIUEU

主要功能負(fù)責(zé)與存儲器、I/O接口傳遞數(shù)據(jù)3、8086/8088的寄存器組共有14個16位寄存器,AX,BX,CX,DX,SI,DI,SP,BP,DS,ES,SS,CS,FR,IP.

其中:

AX、BX、CX、DX

又可分成兩個8位寄存器(AH,AL;BH,BL;CH,CL;DH,DL.)

其它10個只能作為16位寄存器。DSESSSCSIP數(shù)據(jù)暫存器執(zhí)行部件控制電路指令譯碼器總線接口控制電路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊列PSW標(biāo)志寄存器EU運算器8088編程結(jié)構(gòu)DSESSSCSIP數(shù)據(jù)暫存器執(zhí)行部件控制電路指令譯碼器總線接口控制電路AXBXCXDXAHBHCHDHSIDIBPSPALBLCLDL寄存器組BIUABDBCB地址加法器指令隊列FR標(biāo)志寄存器EU運算器

總線接口部件和執(zhí)行部件并不是同步工作的,它們是按以下流水線技術(shù)原則管理:

(1)每當(dāng)8086的指令隊列中有2個空字節(jié),BIU就會自動把指令取到指令隊列中。而同時EU從指令隊列取出一條指令,并用幾個時鐘周期去分析、執(zhí)行指令。(2)當(dāng)指令隊列已滿,而且EU對BIU又無總線訪問請求時,BIU便進(jìn)入空閑狀態(tài)。

(3)在執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時,指令隊列中的原有內(nèi)容被自動清除。4.存儲器結(jié)構(gòu)

8086/8088系統(tǒng)中存儲器按字節(jié)編址,可尋址的存儲器空間為1M字節(jié),由于1M字節(jié)為220,因此每個字節(jié)所對應(yīng)的地址應(yīng)是20位,這20位的地址稱為物理地址。

(1)存儲器的分段20位的物理地址在CPU內(nèi)部就應(yīng)有20位的地址寄存器,而機內(nèi)的寄存器是16位的(16位機),16位寄存器只能尋址64K字節(jié)。8086/8088系統(tǒng)中把1M存儲空間分成若干個邏輯段,每個邏輯段容量(64K字節(jié),因此1M的存儲空間可分成16個邏輯段(0一15)。

允許邏輯段在整個存儲空間浮動,即段與段之間可以部分重疊、完全重疊、連續(xù)排列、斷續(xù)排列非常靈活,在整個存儲空間中可設(shè)置若干個邏輯段,如圖4-2所示。(物理地址12000)在8086/8088存儲空間中,把16字節(jié)的存儲空間稱作一節(jié)(Paragraph)。

為了簡化操作,要求各個邏輯段從節(jié)的整數(shù)邊界開始,也就是說段首地址低4位應(yīng)該是“0”,因此就把段首地址的高16位稱為“段基址”。

存放在段寄存器DS或CS或SS或ES中,段內(nèi)的偏移地址存放在IP或SP中。

若已知當(dāng)前有效的代碼段、數(shù)據(jù)段、附加段和堆棧段的段基址分別為1055H、250AH、8FFBH和EFF0H,那么它們在存儲器中的分布情況如圖4-4所示。(2)存儲器中的邏輯地址和物理地址采用分段結(jié)構(gòu)的存儲器中,任何一個邏輯地址由段基址和偏移地址兩個部分構(gòu)成,它們都是無符號的16位二進(jìn)制數(shù)。

任何一個存儲單元對應(yīng)一個20位的物理地址,也可稱為絕對地址,它是由邏輯地址變換得來的,當(dāng)CPU需要訪問存儲器時,必須完成如下的地址運算:物理地址=段基址*16+偏移地址

物理地址的形成如圖4-5所示,它是通過CPU的總線接口部件BIU的地址加法器來實現(xiàn)的。例,在8086CPU中,設(shè)某段寄存器的內(nèi)容為1000H,試確定由該段寄存器所決定的內(nèi)存段的起始地址和終止地址在8086CPU中,CS寄存器和IP寄存器的內(nèi)容分別如下,試確定由CS和IP指定的內(nèi)存指令地址(1)CS=1000HIP=2000H(2)CS=1234HIP=ABCDH解:10000H~1FFFFH解:1)1000H*16+2000H=12000H2)1234H*16+ABCDH=1CF2DH

我們可以把每一個存儲單元看成是具有兩種類型的地址:物理地址和邏輯地址。

物理地址就是實際地址,它具有20位的地址值,它是唯一標(biāo)識1M字節(jié)存儲空間的某一個字節(jié)的地址。

邏輯地址由段基址和偏移地址組成。程序以邏輯地址編址,而不是用物理地址編址。

5.8086總線的工作周期

為了取得指令和傳送數(shù)據(jù)的協(xié)調(diào)工作,就需要CPU的總線接口部件執(zhí)行一個總線周期。在8086/8088中,一個最基本的總線周期由四個時鐘周期組成,時鐘周期是CPU的基本時間計量單位,它由計算機主頻(基頻和倍頻)決定。例如,8086的主頻為10MHz,一個時鐘周期就是100ns。在一個最基本的總線周期中,常將四個時鐘周期分別稱為四個狀態(tài),即T1狀態(tài)、T2狀態(tài)、T3狀態(tài)、T4狀態(tài)。典型的8086總線周期序列見圖4-6。在T1狀態(tài):CPU往多路復(fù)用總線上發(fā)出地址信息,以指出要尋址的存儲單元或外設(shè)端口的地址。

在T2狀態(tài):CPU從總線上撤消地址,而使總線的低16位浮置成高阻狀態(tài),為傳輸數(shù)據(jù)做準(zhǔn)備??偩€的最高四位(A16—A19)用來輸出本總線周期狀態(tài)信息??臻e周期

在T3狀態(tài):高4位繼續(xù)提供狀態(tài)信息,低16位

傳遞數(shù)據(jù)。

如果外設(shè)或存儲器沒有準(zhǔn)備好,怎么辦?這時,外設(shè)或存儲器會通過“READY”信號線在T3狀態(tài)啟動之前,向CPU發(fā)一個“數(shù)據(jù)未準(zhǔn)備好”信號,于是CPU會在T3之后插入一個或多個附加的時鐘周期Tw,Tw也叫等待狀態(tài)。

什么時候結(jié)束Tw狀態(tài)?在T4狀態(tài):總線周期結(jié)束。

需要指出的是,只有在CPU和內(nèi)存或I/O接口之間傳輸數(shù)據(jù),以及填充指令隊列時,CPU才執(zhí)行總線周期??梢姡绻谝粋€總線周期之后,不立即執(zhí)行下一個總線周期,那么系統(tǒng)總線就處在空閑狀態(tài),此時,執(zhí)行空閑周期。

6.8086/8088CPU的引腳和工作模式

(1)8086和8088的引腳如圖4-7所示:8086/8088各引腳信號的:功能如下:

1.AD15一AD0。(AddressDatabus)地址/數(shù)據(jù)復(fù)用引腳(雙向工作)作為復(fù)用引腳,在總線周期的T1狀態(tài)用來輸出要訪問的存儲器或I/O端口地址。(AD0—低八位數(shù)據(jù)的選通信號)

2.A19/S6一A16/S3(Address/Status)地址/狀態(tài)復(fù)用引腳(輸出)3.BHE/S7(BusHighEnab1e/status)高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳(輸出)BHE信號和AD0會控制連接在總線上的存儲器和接口以何種格式傳輸數(shù)據(jù),具體規(guī)定見表4-3(P81)。

4.NMI(Non一Maskab1einterrupt)非屏蔽中斷引腳(輸入)非屏蔽中斷信號是不受中斷允許標(biāo)志IF的影響,也不能用軟件進(jìn)行屏蔽。每當(dāng)NMI端進(jìn)入一個正沿觸發(fā)信號時,CPU就會在結(jié)束當(dāng)前指令后,進(jìn)入對應(yīng)于中斷類型號為2的非屏蔽中斷處理程序。5.1NTR(1nterruptRequest)可屏蔽中斷請求信號引腳(輸入)可屏蔽中斷請求信號為高電平有效,CPU在執(zhí)行每條指令的最后一個時鐘周期會對INTR信號進(jìn)行采樣,如果CPU中的中斷允許標(biāo)志為1,并且又接收到INTR信號,那么,CPU就會在結(jié)束當(dāng)前指令后,響應(yīng)中斷請求,進(jìn)入一個中斷處理子程序。

6.RD(Read)讀信號引腳(輸出)此信號指出將要執(zhí)行一個對內(nèi)存或I/O端口的讀操作。到底是讀取內(nèi)存單元中的數(shù)據(jù)還是I/0端口中的數(shù)據(jù),這決定于M/IO信號。7.CLK(Clock)時鐘引腳(輸入)

8.RESET(Reset)復(fù)位信號引腳(輸入)復(fù)位信號來到后,CPU便結(jié)束當(dāng)前操作,并對處理器標(biāo)志寄存器、IP、DS、SS、ES及指令隊列清零,而將CS設(shè)置為FFFFH。當(dāng)復(fù)位信號變?yōu)榈碗娖綍r,CPU從FFFF0H開始執(zhí)行程序。

9.READY“準(zhǔn)備好”信號引腳(輸入)“準(zhǔn)備好”,信號實際上是由所訪問的存儲器或1/O設(shè)備發(fā)來的響應(yīng)信號,高電平有效?!皽?zhǔn)備好”,信號有效時,表示內(nèi)存或I/O設(shè)備準(zhǔn)備就緒,馬上就可進(jìn)行一次數(shù)據(jù)傳輸。10.TEST測試信號引腳(輸入)測試信號為低電平有效。TEST信號是和指令WAIT結(jié)合起來使用的,在CPU執(zhí)行WAIT指令時,CPU處于空轉(zhuǎn)狀態(tài)進(jìn)行等待;當(dāng)8086的TEST信號有效時,等待狀態(tài)結(jié)束,CPU繼續(xù)往下執(zhí)行被暫停的指令。11.MN/MX(Minimum/MaximumModeControl)最?。畲竽J娇刂菩盘栆_(輸入)它是最大模式及最小模式的選擇控制端。此引腳固定接為+5V時,CPU處于最小模式;如果接地,則CPU處于最大模式。12.GND地和VCC電源引腳

13、INTA(1nterruptAcknowledge)中斷響應(yīng)信號(輸出)

14、ALE(AddressLatchEnable)地址鎖存允許信號(輸出)這是8086/8088提供給地址鎖存器8282/8283的控制信號,高電平有效。

15.DEN(DataEnable)數(shù)據(jù)允許信號在最小模式下作為數(shù)據(jù)允許信號輸出端。在用8286/8287作為數(shù)據(jù)總線收發(fā)器時,DEN為收發(fā)器提供了一個控制信號,表示CPU當(dāng)前準(zhǔn)備發(fā)送或接受一個數(shù)據(jù)。16.DT/R(DataTransmit/Receive)數(shù)據(jù)收發(fā)(輸出)在使用8286/8287作為數(shù)據(jù)總線收發(fā)器時,DT/R信號用來控制8286/8287的數(shù)據(jù)傳送方向。如果DT/R為高電平,則進(jìn)行數(shù)據(jù)發(fā)送;如果DT/R為低電平,則進(jìn)行數(shù)據(jù)接收。

17.M/IO(Memory/Inputandoutput)存儲器/輸入/輸出控制信號(輸出)此信號若為高電平,表示CPU和存儲器之間進(jìn)行數(shù)據(jù)傳輸;若為低電平,表示CPU和輸入/輸出設(shè)備之間進(jìn)行數(shù)據(jù)傳輸。18.WR(Write)寫信號(輸出)此信號為低電平有效。WR有效時,表示CPU當(dāng)前正在進(jìn)行存儲器或I/O寫操作,具體到底為哪種寫操作,則由M/IO信號決定。

19.HOLD(HoldRequest)總線保持請求信號(輸入)20.HLDA(HoldAcknow1edge)總線保持響應(yīng)信號(輸出)(2)8086/8088CPU工作模式

8086/8088的工作模式完全是由硬件決定的。為了盡可能適應(yīng)各種使用場合,在設(shè)計8086/8088CPU芯片時,就使得它們可以在兩種模式下工作,即最大模式和最小模式。所謂最小模式,就是在系統(tǒng)中只有8086/8088一個微處理器。在這種系統(tǒng)中,所有的總線控制信號都直接由8086/8088產(chǎn)生,因此,系統(tǒng)中的總線控制邏輯電路被減到最少。

8087是一種專用于數(shù)值運算的處理器,它能實現(xiàn)多種類型的數(shù)值操作,例如高精度的整數(shù)和浮點運算,也可以進(jìn)行超越函數(shù)(如:三角函數(shù)、對數(shù)函數(shù))的計算。最大模式是相對最小模式而言,它用在中等規(guī)模的或者大型的8086/8088系統(tǒng)中,在此系統(tǒng)中,包含兩個或多個微處理器。其中一個主處理器就是8086/8088,其它的處理器稱為協(xié)處理器。它們是協(xié)助主處理器工作的。和80

溫馨提示

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

評論

0/150

提交評論