微機(jī)原理與應(yīng)用-第4章_第1頁(yè)
微機(jī)原理與應(yīng)用-第4章_第2頁(yè)
微機(jī)原理與應(yīng)用-第4章_第3頁(yè)
微機(jī)原理與應(yīng)用-第4章_第4頁(yè)
微機(jī)原理與應(yīng)用-第4章_第5頁(yè)
已閱讀5頁(yè),還剩24頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、微機(jī)原理及其應(yīng)用微機(jī)原理及其應(yīng)用第第4 4章微處理器及系統(tǒng)結(jié)構(gòu)章微處理器及系統(tǒng)結(jié)構(gòu) 4.1 Intel 8086/8088 CPU主要特性及內(nèi)部結(jié)構(gòu) 4.2 80868088CPU工作模式和引腳功能 4.3 80868088的存儲(chǔ)器組織 目錄 內(nèi)容簡(jiǎn)介:內(nèi)容簡(jiǎn)介:8086/8088微處理器系統(tǒng)特性及結(jié)構(gòu); 內(nèi)部寄存器的結(jié)構(gòu)特點(diǎn),8086/8088微機(jī)系統(tǒng)的存儲(chǔ) 器組織。 4.4 80868088的總線(xiàn)操作和時(shí)序 4.5 80 x86微處理器簡(jiǎn)介 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.1 Intel 8086/8088 CPU主要特性及內(nèi)部結(jié)構(gòu) 4.1.1 8086/8088

2、 CPU主要特性 Intel 8086是16位微處理器,采用HMOS工藝40條引腳封裝,使用5V 電源,時(shí)鐘頻率5 MHz。主要特性如下: (1)8086CPU數(shù)據(jù)總線(xiàn)為16位,8088CPU數(shù)據(jù)總線(xiàn)為8位。 (2)地址總線(xiàn)都是20位,低16位與數(shù)據(jù)總線(xiàn)分時(shí)復(fù)用,可直接尋址1MB 的存儲(chǔ)空間。 (3)有16位的端口地址,可以尋址64KB的I/O端口。 (4)有99條基本指令,指令功能強(qiáng)大。 (5)有8種基本尋址方式。 (6)可處理內(nèi)部和外部中斷,外部中斷源多達(dá)256個(gè)。 (7)兼容性好,與80X86、8085在源程序一級(jí)兼容。 (8)8086可與和協(xié)處理器(8087、8089)組成多處理器系統(tǒng)

3、。 4.1.2 8086/8088 CPU內(nèi)部結(jié)構(gòu) 第第2 2章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 地址總線(xiàn)(20位) 圖4-1 8086 CPU內(nèi)部結(jié)構(gòu)框圖 ALU數(shù)據(jù)總線(xiàn)(16位) 地址加法器 隊(duì)列 總線(xiàn) (8位) 指 令 隊(duì) 列 總線(xiàn)接口單元(BIU) 1 2 3 4 5 6 D S 內(nèi)部通信寄存器 總 線(xiàn) 控 制 邏 輯 數(shù)據(jù)總線(xiàn) (16位) 8086總線(xiàn) 暫 存 器 A L U FLAGS E U 控制 器 指令執(zhí)行單元(EU) 通 用 寄 存 器 AX AH AL BX BH BL CX CH CL DX DH DL S P B P D I S I C S S S E S I

4、P 從圖4-1中可看出,8086CPU由兩部分即指令執(zhí)行單元EU和 總線(xiàn)接口單元BIU組成。 指令執(zhí)行單元由算術(shù)邏輯運(yùn)算單元ALU、標(biāo)志寄存器FLAGS、 通用寄存器組和EU控制器等4個(gè)部件組成,其主要功能是執(zhí)行指令。 總線(xiàn)接口部件BIU由地址加法器、專(zhuān)用寄存器組、指令隊(duì)列和 總線(xiàn)控制邏輯等4個(gè)部件組成,其主要功能是形成訪(fǎng)問(wèn)存儲(chǔ)器的物 理地址、訪(fǎng)問(wèn)存儲(chǔ)器取得指令并暫存到指令隊(duì)列中等待執(zhí)行,訪(fǎng)問(wèn) 存儲(chǔ)器或I/O端口以及讀取操作數(shù)參與EU運(yùn)算或存放運(yùn)算結(jié)果等。 8088與8086 的區(qū)別:1)8088 BIU中指令隊(duì)列長(zhǎng)度只有4B,8 086BIU指令隊(duì)列長(zhǎng)度有6B。2)8088 BIU通過(guò)總線(xiàn)控

5、制電路與外 部交換數(shù)據(jù)的總線(xiàn)寬度是8位,總線(xiàn)控制電路與專(zhuān)用寄存器組之間 的數(shù)據(jù)總線(xiàn)寬度也是8位,而EU內(nèi)部總線(xiàn)仍是16位,所以把8088 稱(chēng)為準(zhǔn)16位微處理器。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.1.3 8086 CPU的寄存器結(jié)構(gòu) 8086CPU中有14個(gè)16位的寄存器。 8個(gè)16位通用寄存器; 2個(gè)16位指針寄存器; 2個(gè)16位的變址寄存器; 4個(gè)16位的段寄存器; 1個(gè)16位指令指針; 1個(gè)16位標(biāo)志寄存器。 8086/8088 CPU的內(nèi)部寄存器如圖4 -2所示。 圖4-2 8086/8088 CPU內(nèi)部寄存器 15 8 7 0 SP BP SI DI 堆棧指針

6、寄存器 基址指針寄存器 源變址寄存器 目的變址寄存器 指針和變址 寄存器 代碼段寄存器 數(shù)據(jù)段寄存器 堆棧段寄存器 附加段寄存器 段寄存器組 CS DS SS ES 指令指針寄存器 標(biāo)志寄存器 控制寄存器組 IP FLAGS 累加器 基址寄存器 計(jì)數(shù)寄存器 數(shù)據(jù)寄存器 數(shù)據(jù) 寄存器 AX AH AL BX BH BL CX CH CL DX DH DL 通 用 寄 存 器 組 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 1通用寄存器組 8個(gè)16位通用寄存器,它們可分成兩組。一組由AX、BX、CX和DX構(gòu)成,稱(chēng) 為數(shù)據(jù)寄存器,可用來(lái)存放16位的數(shù)據(jù)或地址,也可把它們當(dāng)作8個(gè)8位寄 存器

7、來(lái)使用,即把每個(gè)通用寄存器的高半部分和低半部分分開(kāi)。低半部分 被命名為AL、BL、CL和DL;高半部分則被命名為AH、BH、CH和DH。8位寄 存器只能存放數(shù)據(jù)而不能存放地址。 2段寄存器 4個(gè)16位段寄位器,它們是代碼段寄存器CS,用于存放當(dāng)前代碼段的段地 址;數(shù)據(jù)段寄存器DS,用于存放當(dāng)前數(shù)據(jù)段的段地址;附加段寄存器ES, 用于存放當(dāng)前附加段的段地址;堆棧段寄存器SS,用于存放當(dāng)前堆棧段的 段地址。這些段寄存器彼此不能互換,每個(gè)段寄存器在只能尋址64KB。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 3標(biāo)志寄存器FLAGS 8086/8088 CPU中設(shè)置了一個(gè)16位標(biāo)志寄存器F

8、LAGS,用來(lái)存放運(yùn)算結(jié) 果的特征和控制標(biāo)志,其格式如下。 OF DF IF TF SF ZF AF PF CF 11 10 9 8 7 6 4 2 015 標(biāo)志寄存器FLAGS中存放的9個(gè)標(biāo)志位可分成兩類(lèi),一類(lèi)叫狀態(tài)標(biāo)志, 用來(lái)表示運(yùn)算結(jié)果的特征,包括CF、PF、AF、ZF、SF和OF;另一類(lèi)叫控制 標(biāo)志,用來(lái)控制CPU的操作,包括IF、DF和TF。各標(biāo)志位的定義說(shuō)明如下。 (1)CF:進(jìn)位標(biāo)志位。CF=1,表示本次運(yùn)算中最高位(第7位或第15位) 有進(jìn)位(加法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。 注:注:CF=1 表示二個(gè)無(wú)符號(hào)數(shù)加法或減法運(yùn)算的結(jié)果超出了該字長(zhǎng)能夠表示 的數(shù)據(jù)范圍。例如,執(zhí)行

9、8位數(shù)據(jù)運(yùn)算后,CF=1表示加法結(jié)果超過(guò)了255, 或者是減法得到的差小于零。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (2)PF:奇偶標(biāo)志位。PF=1,表示本次運(yùn)算結(jié)果的低八位中有偶數(shù)個(gè)“1”;P F=0,表示有奇數(shù)個(gè)“1”。 (3)AF:輔助進(jìn)位標(biāo)志位。AF=1,表示8位運(yùn)算結(jié)果(限使用AL寄存器)中低4 位向高4位有進(jìn)位(加法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。 (4)ZF:零標(biāo)志位。ZF=1,表示運(yùn)算結(jié)果為0(各位全為0),否則ZF=0。 (5)SF:符號(hào)標(biāo)志位。SF=1,表示運(yùn)算結(jié)果的最高位(第7位或第15位)為 “1”,否則SF=0。 (6)OF:溢出標(biāo)志位。OF=1,表

10、示算術(shù)運(yùn)算結(jié)果產(chǎn)生溢出,否則OF=0。 溢出標(biāo)志位是根據(jù)操作數(shù)的符號(hào)及其變化情況設(shè)置的。例如,加法運(yùn)算時(shí),兩 個(gè)操作數(shù)符號(hào)相同,而結(jié)果的符號(hào)與之相反,則OF=1;否則OF=0。減法運(yùn)算時(shí), 兩個(gè)異號(hào)操作數(shù)相減,若差的符號(hào)與理論上結(jié)果的符號(hào)相反,則OF=1;否則OF= 0。 注:OF=1 表示二個(gè)用補(bǔ)碼表示的有符號(hào)數(shù)的加法或減法結(jié)果超出了該字長(zhǎng)所能 表示的范圍。例如,字長(zhǎng)為8位時(shí),OF=1表示運(yùn)算結(jié)果大于127 或小于-128 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 1.2.2 微型計(jì)算機(jī)的工作原理 例1 若AL = 3BH,AH = 7DH,試指出AL中的內(nèi)容和AH中的內(nèi)容相加、

11、相 減后,標(biāo)志CF、AF、PF、SF、OF和ZF的狀態(tài)。 解:(1)AL + AH 0 0 1 1 1 0 1 1 AL + 0 1 1 1 1 1 0 1 AH 1 0 1 1 1 0 0 0 由運(yùn)算結(jié)果可知: CF = 0 (無(wú)進(jìn)位); AF = 1(有輔助進(jìn)位); PF = 1(有偶數(shù)個(gè)1); SF = D7 = 1(運(yùn)算結(jié)果符號(hào)位為1); OF = 1 (同號(hào)相加,結(jié)果的符號(hào)與 兩操作數(shù)符號(hào)相反,有溢出); ZF = 0 (運(yùn)算結(jié)果不為0)。 (2)AL AH 0 0 1 1 1 0 1 1 AL - 0 1 1 1 1 1 0 1 AH 1 0 1 1 1 1 1 0 由運(yùn)算結(jié)果可知

12、: CF = 1(有借位); AF = 1(有輔助借位); PF = 1(有偶數(shù)個(gè)1); SF = 1(符號(hào)位為1); OF = 0(同號(hào)相減,無(wú)溢出); ZF = 0(運(yùn)算結(jié)果不為0)。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (7)IF:中斷允許標(biāo)志位。IF=1,表示允許CPU響應(yīng)可屏蔽中斷。IF標(biāo) 志可通過(guò)STI指令置位,也可通過(guò)CLI指令復(fù)位。 (8)DF:方向標(biāo)志位。在串操作指令中,若DF=0,表示串操作指令執(zhí)行 后地址指針自動(dòng)增量,串操作由低地址向高地址進(jìn)行;DF=1,表示地址 指針自動(dòng)減量,即串操作由高地址向低地址進(jìn)行。DF標(biāo)志位可通過(guò)STD指 令置位,也可通過(guò)CL

13、D指令復(fù)位。 (9)TF:?jiǎn)尾綐?biāo)志位。TF=1,表示控制CPU進(jìn)入單步工作方式。在這種 工作方式下,CPU每執(zhí)行完一條指令就會(huì)自動(dòng)產(chǎn)生一次內(nèi)部中斷。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4指令指針寄存器IP 8086/8088 CPU中有一個(gè)16位指令指針寄存器IP, 用來(lái)存放將要執(zhí)行的下一條指令在代碼段中的偏移地址。在程序運(yùn)行過(guò)程 中, BIU自動(dòng)修改IP中的內(nèi)容,使它始終指向?qū)⒁獔?zhí)行的下一條指令。 4.2 80868088CPU工作模式和引腳功能 4.2.1 8086/8088 CPU引腳功能 18086/8088 CPU的主要引腳及功能 8086/8088 CPU是十六

14、位的微處理 器,它向外的信號(hào)至少應(yīng)包含16條數(shù)據(jù) 線(xiàn),20條地址線(xiàn),再加上其他一些必要 的控制信號(hào)。為了減少芯片引腳數(shù)量, 對(duì)部分引腳采用了分時(shí)復(fù)用的方式,構(gòu) 成40條引腳的雙列直插式封裝。 8086 CPU封裝外形與內(nèi)部各功能部 件之間的相互連接如圖4-3a)所示。 a) HLDA(RQ1 / GT1) HOLD(RQ0 / GT0) INTR GND 140 8 0 8 6 C P U AD14 AD13 AD12 AD11 AD10 AD9 AD8 AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0 NMI CLK GND Vcc (+5V) A16 / S3 A18 / S

15、5 A19 / S6 WR(LOCK) AD15 A17 / S4 BHE/ S7 MN / MX RD M/ IO(S2) DT / R(S1) DEN(S0) ALE(QS0) INTA(QS1) TEST READY RESET 2021 圖4-3 8086 CPU封裝外形與實(shí)物圖 a)封裝外形 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (1)AD15AD0分時(shí)復(fù)用地址數(shù)據(jù)線(xiàn)。三態(tài)單向輸出;在T2T4期間作數(shù)據(jù) 線(xiàn)D15D0,雙向三態(tài)輸入/輸出。 (2)A19/S6A16/S3分時(shí)復(fù)用的地址/狀態(tài)線(xiàn)。用作地址線(xiàn)時(shí),A19A16與AD1 5AD0一起構(gòu)成訪(fǎng)問(wèn)存儲(chǔ)器的20位物理地

16、址。 (3)BHE/S7總線(xiàn)高字節(jié)有效信號(hào)。三態(tài)輸出,BHE/S7“0”時(shí),用來(lái)表示 當(dāng)前高8位數(shù)據(jù)線(xiàn)上的數(shù)據(jù)有效。 (4)RD讀信號(hào)。三態(tài)輸出,當(dāng)“0”時(shí),表示當(dāng)前CPU正在讀存儲(chǔ)器或I/O 端口。 (5)WR寫(xiě)信號(hào)。三態(tài)輸出,當(dāng)“0”時(shí),表示當(dāng)前CPU正在寫(xiě)存儲(chǔ)器或I/O 端口。 (6)M/IO存儲(chǔ)器或I/O端口訪(fǎng)問(wèn)信號(hào)。三態(tài)輸出,當(dāng)“1”時(shí),表示當(dāng)前C PU正在訪(fǎng)問(wèn)存儲(chǔ)器;“0”時(shí),表示CPU當(dāng)前正在訪(fǎng)問(wèn)I/O端口。 (7)READY 準(zhǔn)備就緒信號(hào)。由外部輸入,當(dāng)READY“1”時(shí),表示CPU訪(fǎng)問(wèn) 的存儲(chǔ)器或I/O端口已準(zhǔn)備好傳送數(shù)據(jù)。 (8)RESET 復(fù)位信號(hào)。由外部輸入,高電平有效

17、。 BHEBHE 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 28086/8088的工作模式 8086/8088 CPU為適應(yīng)不同的 應(yīng)用環(huán)境,設(shè)置有兩種工作模式, 即最大工作模式和最小工作模式。 (1)最小工作模式。所謂最小工 作模式,是指系統(tǒng)中只有一個(gè)808 6/8088微處理器,所有的總線(xiàn)控 制信號(hào)都由8086/8088 CPU直接產(chǎn) 生,將CPU的引腳信號(hào)MN/接高電 平(+5V)可使它工作于最小模式。 Vcc 圖4-4 8086最小模式下的系統(tǒng)總線(xiàn)構(gòu)成 地址 鎖存器 (82823) 8284A CLK READY RESET 8086 CPU AD15AD0 HE OE A

18、19A16 INTR HOLD T A15A0 數(shù)據(jù) 收發(fā)器 (82862) STB DI 控制總線(xiàn) B15B0 HE A19A0 地址總線(xiàn) D15D0 數(shù)據(jù)總線(xiàn) DO HLDA RDY OE INTA M/IO RD WR DEN DT/R 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (2)最大工作模式 所謂最大工作模式,是指系統(tǒng)中 包含有兩個(gè)以上的微處理器。其中一 個(gè)為主處理器,就是8086/8088 CPU, 其他是協(xié)處理器。 常與主處理器8086/8088 CPU相 配的協(xié)處理器有兩個(gè):一個(gè)是專(zhuān)用于 數(shù)值運(yùn)算的協(xié)處理器8087,使用它可 大幅度提高系統(tǒng)數(shù)值運(yùn)算速度;另一 個(gè)專(zhuān)

19、用于I/O操作的協(xié)處理器8089。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 圖4-5 8086最大模式下的系統(tǒng)總線(xiàn)構(gòu)成 CEN 地址 鎖存器 (82823) 8284A RESET READY CLK 8086 CPU DEN AD15AD0 HE ALE A19A16 MRDC T A15A0 數(shù)據(jù) 收發(fā)器 (82862) STB DI B15B0 BHE A19A0 地址總線(xiàn) D15D0 數(shù)據(jù)總線(xiàn) DO RDY S0 S1 S2 S1 S2 S0 MWTC AMWC IORC IOWC AIOWC AEN IOB CLK +5V IORC INTR RQ/GT0 RQ/GT1

20、8288 控制總線(xiàn) 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.3 80868088的存儲(chǔ)器組織 4.3.1 存儲(chǔ)器的分段和物理地址的形成 1存儲(chǔ)器的組成 8086/8088系統(tǒng)中存儲(chǔ)器的每一個(gè)存儲(chǔ) 單元(字節(jié))都有一個(gè)獨(dú)立的地址編碼,地 址編碼采用20位二進(jìn)制表示,地址譯碼器是 根據(jù)地址編碼才找到目標(biāo)存儲(chǔ)單元的。 20位二進(jìn)制地址編碼的范圍的十六進(jìn)制表示 為00000HFFFFFH,最多可表示220(1MB) 地址編碼唯一的存儲(chǔ)單元,把20位二進(jìn)制表 示的地址稱(chēng)為物理地址。 1011011010110110 38F04H 存儲(chǔ)單元內(nèi)容存儲(chǔ)單元內(nèi)容 存儲(chǔ)單元地址存儲(chǔ)單元地址 (2

21、)存儲(chǔ)器的分段 分段原因分段原因:由于8086/8088內(nèi)部寄存器是16位的,對(duì) 地址進(jìn)行運(yùn)算的能力也是16位的,一個(gè)20位的物理 地址在8086/8088內(nèi)部是無(wú)法存儲(chǔ)的,也無(wú)法運(yùn)算。 提出了對(duì)內(nèi)存進(jìn)行分段。 分段方案:分段方案:將1MB存儲(chǔ)空間邏輯上分為若干段,每段 存儲(chǔ)容量不大于64KB,段的起始單元地址能夠被16整 除,即起始地址為XXXX0H,前16位成為段基址,段 內(nèi)某單元相對(duì)于段首單元的位移量成為偏移地址。 段的種類(lèi):段的種類(lèi):一個(gè)邏輯段用于存放不同的信息,如程 序段、數(shù)據(jù)段、堆棧段、堆棧段。每個(gè)邏輯段的容 量在64KB以?xún)?nèi)。 段的分類(lèi):段的分類(lèi):各個(gè)邏輯段之間可以緊密相連,也可

22、以 相互重疊(完全重疊或部分重疊), 段164KB 段264KB 段364KB 464KB 00000H 段1起點(diǎn) 段2起點(diǎn) 段3起點(diǎn) 段4起點(diǎn) 圖4-6 存儲(chǔ)器分段示意圖 FFFFFH 12340H 段基址段基址 一一個(gè)個(gè)段段 2233FH 0000H 0001H 0002H 偏移地偏移地 址址 FFFFH 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 3存儲(chǔ)器地址 (1)物理地址:8088/8086可直接尋址1MB的存儲(chǔ)空間, 其地址區(qū)域?yàn)?0000HFFFFFH,與存儲(chǔ)單元一一對(duì)應(yīng)的2 0位地址,稱(chēng)之為存儲(chǔ)單元的物理地址。 (2)偏移地址:偏移地址是某存儲(chǔ)單元相對(duì)其所在段 起始位

23、置的偏移字節(jié)數(shù),或簡(jiǎn)稱(chēng)偏移量,是一個(gè)16位的 地址。 (3)物理地址的形成:物理地址是由段地址與偏移地址 共同決定的,段地址來(lái)自于段寄存器(CS、DS、ES、S S),是十六位地址,由段地址及偏移地址計(jì)算物理地址 的表達(dá)式如下: 物理地址=段地址16+偏移地址 (4)邏輯地址:程序中用來(lái)描述存儲(chǔ)單元位置的地址稱(chēng) 為邏輯地址,它以“段基址:偏移地址”的形式給出。 代碼段 數(shù)據(jù)段 附加段 堆棧段 CSCS DSDS ESES SSSS 段寄存器與段對(duì)應(yīng)關(guān)系 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4邏輯地址的來(lái)源 如果訪(fǎng)問(wèn)存儲(chǔ)器的指令,則段基址來(lái)源 于代碼段寄存器CS,偏移地址來(lái)源于

24、指令指 針I(yè)P。如果訪(fǎng)問(wèn)存儲(chǔ)器讀寫(xiě)操作數(shù),則通常 由數(shù)據(jù)段寄存器DS給出段基址,而其偏移地 址要由CPU的指令執(zhí)行部件EU根據(jù)指令中的 尋址方式來(lái)進(jìn)行計(jì)算。如果所采用的尋址方 式是通過(guò)基址指針寄存器BP尋址,則段基址 要由堆棧段寄存器SS提供。如果對(duì)堆棧進(jìn)行 操作,則段基址來(lái)源于堆棧段寄存器SS,偏 移地址來(lái)源于堆棧指針SP。 0 0 0 0 15 0 15 0 3 2 1 0 段 基 址 圖4-8 物理地址的形成過(guò)程 19 0 地 址 加 法 器 物 理 地 址 偏 移 地 址 例如,某單元處于數(shù)據(jù)段 中,已知DS = 2300H,偏 移地址為0658H,則其物 理地址為: 2300H 10

25、H + 0658H = 23658H 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.3.2 8086系統(tǒng)中存儲(chǔ)器的分體結(jié)構(gòu) 18086系統(tǒng)中存儲(chǔ)器的結(jié)構(gòu) 8086系統(tǒng)中,將1MB的存儲(chǔ)空間分成兩個(gè) 512KB的存儲(chǔ)體,一個(gè)存儲(chǔ)體中包含偶數(shù)地址單元,用數(shù)據(jù)總線(xiàn)的低8位 與它相連;另一個(gè)包含奇數(shù)地址單元,用數(shù)據(jù)總線(xiàn)的高8位與它相連。 兩個(gè)存儲(chǔ)體之間采用字節(jié)交叉編址方式,如圖2-9所示。 15 8 7 0 圖4-9 存儲(chǔ)器結(jié)構(gòu)圖 00001 00003 00005 2 20 1= FFFFF 00000 00002 00004 FFFFE= 2 20 - 2 512K8(位) 奇地址 存

26、儲(chǔ)體 (A0=1) 512K8(位) 偶地址 存儲(chǔ)體 (A0=0) 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 2存儲(chǔ)器存放數(shù)據(jù)情況 若存放的數(shù)據(jù)是以字節(jié)為單位,在存儲(chǔ)器中按 順序排列存放。例在10000H開(kāi)始存儲(chǔ)單元存放01H、 13H、0ABH、86H,則在存儲(chǔ)器中存放數(shù)據(jù)的情況如 圖2-12。 若存放的數(shù)據(jù)是以字(16位)為單位的,則將 每個(gè)字的低字節(jié)存放在低地址、高字節(jié)存放在高地 址,并以低地址作為該字的地址。例在10003H開(kāi)始 存放1234H、567AH兩個(gè)字,在存儲(chǔ)器中存放數(shù)據(jù)的 情況如圖4-12。 01H 10000H 13H 10001H ABH 10002H 86

27、H 10003H 34H 10004H 12H 10005H 7AH 10006H 56H 10007H 圖4-12 存儲(chǔ)器存放數(shù)據(jù)情況 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.3.3 80868088系統(tǒng)中的堆棧 堆棧是在計(jì)算機(jī)中的RAM存儲(chǔ)區(qū)開(kāi)辟的一個(gè)特 定區(qū)域,按照“后進(jìn)先出”的原則組織。主要用 于暫存數(shù)據(jù)和斷點(diǎn)地址。 1堆棧的結(jié)構(gòu) 存儲(chǔ)區(qū)的存儲(chǔ)方式采用一端固定(稱(chēng)為棧底), 另一端浮動(dòng)(稱(chēng)為棧頂)的方式,即只允許在活 動(dòng)端進(jìn)行數(shù)據(jù)的輸入或刪除。 2堆棧的操作 堆棧段在存儲(chǔ)區(qū)中的位置由堆棧段寄存器SS 和堆棧指針SP來(lái)確定。SS中存放堆棧段的段基址, SP中存放棧頂?shù)牡?/p>

28、址,此地址表示棧頂離段首址 的偏移量,因此用SP指示棧元素進(jìn)棧和出棧的偏 移地址的變化。 堆棧段首地址 SS 10000H 圖4-13 8086堆棧在存儲(chǔ) 器中的分布情況 11FFBH 11FFDH 11FFEH 11FFFH 11FFAH 11FFCH SP 12000H 棧底 64KB 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (1)建棧。 建立堆棧就是設(shè)定堆棧的段基址和棧底,用戶(hù)可以通過(guò)數(shù)據(jù)傳送指令把 堆段的段基址送入段寄存器SS,把棧底的偏移地址送入堆棧指針寄存器SP。 此時(shí)棧中無(wú)數(shù)據(jù),是一個(gè)空棧。 若SS = 1000H,SP = 2000H,則堆棧的情況如圖2-13所示

29、,建立堆 棧指令為:MOV AX,1000H MOV SS, AX MOV SP,2000H (2)入棧。 入棧就是把數(shù)據(jù)壓入堆棧,又稱(chēng)進(jìn)棧。8086微處理器的入棧操作以字為單 位。入棧操作分為兩步:將堆棧指針寄存器SP的內(nèi)容減2,即是棧頂向低 地址方向移動(dòng)一個(gè)字單元,指向新棧頂。即:SP SP 2;將一個(gè)字?jǐn)?shù)據(jù) 推入到SP所指向的棧頂字單元,即:SP 字?jǐn)?shù)據(jù)。 注意:入棧字的低字節(jié)存入低地址單元,高字節(jié)存入高地址單元。注意:入棧字的低字節(jié)存入低地址單元,高字節(jié)存入高地址單元。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 例2 若SS = 2000H,當(dāng)前SP = 1234H,將寄存

30、器AX中的數(shù)據(jù)7C9FH壓入 堆棧。操作如下:修改SP,使其指向新棧頂,即:SP = 1232H。 AX的內(nèi)容壓入棧頂字單元。即:AL送21232H單元,AH送21233H單元。 其操作如圖2-14a所示。 7CH 9FH 5CH 20H SP 1232H 21232H 21233H 21234H 9FH 7CH XX AX 入棧操作 設(shè)SS = 2000H a) SP 1234H 21232H 21233H 21234H 20H 5CH XX AX 出棧操作 圖4-14入棧、出棧操作示意圖 a)入棧操作 b)出棧操作 b) (3)出棧。 出棧是從堆棧中彈出數(shù)據(jù)。出棧的操作順序 與入棧相反。將

31、棧頂?shù)囊粋€(gè)字送寄存器或 存儲(chǔ)器,即:寄存器/存儲(chǔ)器 SP;堆 棧指針寄存器SP的內(nèi)容加2,指向新棧頂, 即:SP (SP)+ 2 若:若SS = 2000H,當(dāng)前SP = 1232H, 將棧頂數(shù)據(jù)彈出送寄存器AX。操作如下:其 操作如圖2-14b所示。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 2.4.1 時(shí)鐘周期、總線(xiàn)周期和指令周期 1時(shí)鐘周期時(shí)鐘周期 時(shí)鐘周期就是系統(tǒng)主時(shí)鐘一個(gè)周期信號(hào)所持續(xù)的時(shí)間,大小等 于它頻率的倒數(shù),它是CPU的基本時(shí)間計(jì)量單位。例如,某CPU的主頻為8MHz, 則其時(shí)鐘的周期T = 1/f = 1/8MHz = 125 ns;若主頻為25MHz,時(shí)鐘周期

32、為4 0ns。 2指令周期指令周期 CPU的一切操作都是在系統(tǒng)主時(shí)鐘CLK的控制下按節(jié)拍有序地進(jìn) 行的。CPU執(zhí)行一條指令的時(shí)間(包括取指令和執(zhí)行該指令所需的全部時(shí)間) 稱(chēng)為指令周期。 3總線(xiàn)周期總線(xiàn)周期 在一個(gè)指令周期內(nèi),常常需要對(duì)總線(xiàn)上的存儲(chǔ)器或I/O端口進(jìn) 行一次或多次讀寫(xiě)操作。CPU通過(guò)外部總線(xiàn)對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次讀寫(xiě) 操作的過(guò)程稱(chēng)為總線(xiàn)周期。顯然,一個(gè)指令周期應(yīng)由若干個(gè)總線(xiàn)周期組成, 而一個(gè)總線(xiàn)周期由若干個(gè)時(shí)鐘周期(T)組成。 4.4 80868088的總線(xiàn)操作和時(shí)序 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.4.2 8086/8088 CPU的基本總線(xiàn)周期

33、在8086/8088 CPU中,所有的外部操作(讀寫(xiě)存儲(chǔ)器或I/O端口) 都是由總線(xiàn)接口單元BIU通過(guò)系統(tǒng)總線(xiàn)完成的。因此,把BIU通過(guò)系 統(tǒng)總線(xiàn)對(duì)存儲(chǔ)器或I/O端口作一次讀寫(xiě)操作的過(guò)程稱(chēng)為一個(gè)總線(xiàn)周期。 可見(jiàn),只有當(dāng)BIU需要訪(fǎng)問(wèn)內(nèi)存或I/O端口時(shí),才需要執(zhí)行總線(xiàn)周期。 也就是說(shuō),總線(xiàn)周期是根據(jù)需要才會(huì)出現(xiàn)的。 8086/8088CPU為了完成自身的功能,需要執(zhí)行各種操作,如啟 動(dòng)和復(fù)位操作、各種總線(xiàn)操作、中斷操作、總線(xiàn)保持或總線(xiàn)請(qǐng)求操 作等,這些操作的執(zhí)行都是在時(shí)鐘脈沖CLK的同步下,按時(shí)序一步一 步地進(jìn)行,這樣,就構(gòu)成了CPU操作的時(shí)序。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)

34、結(jié)構(gòu) 4.4.3 典型總線(xiàn)周期(總線(xiàn)操作) 總線(xiàn)操作總線(xiàn)操作: : 8086/8088CPU凡是與存儲(chǔ)器或I/O端口交換數(shù)據(jù),或取指令 填充指令隊(duì)列時(shí)都需要通過(guò)BIU執(zhí)行總線(xiàn)周期,即為總線(xiàn)操作??偩€(xiàn)操 作按數(shù)據(jù)傳送方向可分為總線(xiàn)讀操作和總線(xiàn)寫(xiě)操作。前者是指CPU從 存儲(chǔ)單元或I/O端口中讀取數(shù)據(jù),后者是指CPU將數(shù)據(jù)寫(xiě)入指定存儲(chǔ)單 元或I/O端口。 1 1最小模式下的總線(xiàn)讀操作最小模式下的總線(xiàn)讀操作 總線(xiàn)讀操作是8086/8088CPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù)的操作, 在總線(xiàn)讀周期內(nèi)完成。圖2-9是8086CPU在最小模式下從存儲(chǔ)器或I/O 端口讀取數(shù)據(jù)(即執(zhí)行讀操作)的時(shí)序。 2 2最小模式下的總線(xiàn)寫(xiě)操作最小模式下的總線(xiàn)寫(xiě)操作 8086/8088的寫(xiě)總線(xiàn)周期和讀操作一樣,基本寫(xiě)周期也包含4個(gè)狀 態(tài)T1、T2、T3和T4。當(dāng)存儲(chǔ)器或I/O設(shè)備速度較慢時(shí),在T3和T4之間 插入1個(gè)或幾個(gè)等待狀態(tài)TW。圖2-10所示為最小模式下的總線(xiàn)寫(xiě)操作 時(shí)序。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 圖4-9 8086最小模式下總線(xiàn)讀周期的時(shí)序 RD A19/S6A16/S3 AD15AD0 TW(1n) CLK T1T2T3 ALE D

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論