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

下載本文檔

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

文檔簡介

1、微機原理及其應(yīng)用微機原理及其應(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的存儲器組織 目錄 內(nèi)容簡介:內(nèi)容簡介:8086/8088微處理器系統(tǒng)特性及結(jié)構(gòu); 內(nèi)部寄存器的結(jié)構(gòu)特點,8086/8088微機系統(tǒng)的存儲 器組織。 4.4 80868088的總線操作和時序 4.5 80 x86微處理器簡介 第第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 電源,時鐘頻率5 MHz。主要特性如下: (1)8086CPU數(shù)據(jù)總線為16位,8088CPU數(shù)據(jù)總線為8位。 (2)地址總線都是20位,低16位與數(shù)據(jù)總線分時復(fù)用,可直接尋址1MB 的存儲空間。 (3)有16位的端口地址,可以尋址64KB的I/O端口。 (4)有99條基本指令,指令功能強大。 (5)有8種基本尋址方式。 (6)可處理內(nèi)部和外部中斷,外部中斷源多達256個。 (7)兼容性好,與80X86、8085在源程序一級兼容。 (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) 地址總線(20位) 圖4-1 8086 CPU內(nèi)部結(jié)構(gòu)框圖 ALU數(shù)據(jù)總線(16位) 地址加法器 隊列 總線 (8位) 指 令 隊 列 總線接口單元(BIU) 1 2 3 4 5 6 D S 內(nèi)部通信寄存器 總 線 控 制 邏 輯 數(shù)據(jù)總線 (16位) 8086總線 暫 存 器 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和 總線接口單元BIU組成。 指令執(zhí)行單元由算術(shù)邏輯運算單元ALU、標志寄存器FLAGS、 通用寄存器組和EU控制器等4個部件組成,其主要功能是執(zhí)行指令。 總線接口部件BIU由地址加法器、專用寄存器組、指令隊列和 總線控制邏輯等4個部件組成,其主要功能是形成訪問存儲器的物 理地址、訪問存儲器取得指令并暫存到指令隊列中等待執(zhí)行,訪問 存儲器或I/O端口以及讀取操作數(shù)參與EU運算或存放運算結(jié)果等。 8088與8086 的區(qū)別:1)8088 BIU中指令隊列長度只有4B,8 086BIU指令隊列長度有6B。2)8088 BIU通過總線控

5、制電路與外 部交換數(shù)據(jù)的總線寬度是8位,總線控制電路與專用寄存器組之間 的數(shù)據(jù)總線寬度也是8位,而EU內(nèi)部總線仍是16位,所以把8088 稱為準16位微處理器。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.1.3 8086 CPU的寄存器結(jié)構(gòu) 8086CPU中有14個16位的寄存器。 8個16位通用寄存器; 2個16位指針寄存器; 2個16位的變址寄存器; 4個16位的段寄存器; 1個16位指令指針; 1個16位標志寄存器。 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 指令指針寄存器 標志寄存器 控制寄存器組 IP FLAGS 累加器 基址寄存器 計數(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個16位通用寄存器,它們可分成兩組。一組由AX、BX、CX和DX構(gòu)成,稱 為數(shù)據(jù)寄存器,可用來存放16位的數(shù)據(jù)或地址,也可把它們當作8個8位寄 存器

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

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

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

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

11、相 減后,標志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 由運算結(jié)果可知: CF = 0 (無進位); AF = 1(有輔助進位); PF = 1(有偶數(shù)個1); SF = D7 = 1(運算結(jié)果符號位為1); OF = 1 (同號相加,結(jié)果的符號與 兩操作數(shù)符號相反,有溢出); ZF = 0 (運算結(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 由運算結(jié)果可知

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

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

14、位的微處理 器,它向外的信號至少應(yīng)包含16條數(shù)據(jù) 線,20條地址線,再加上其他一些必要 的控制信號。為了減少芯片引腳數(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封裝外形與實物圖 a)封裝外形 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) (1)AD15AD0分時復(fù)用地址數(shù)據(jù)線。三態(tài)單向輸出;在T2T4期間作數(shù)據(jù) 線D15D0,雙向三態(tài)輸入/輸出。 (2)A19/S6A16/S3分時復(fù)用的地址/狀態(tài)線。用作地址線時,A19A16與AD1 5AD0一起構(gòu)成訪問存儲器的20位物理地

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

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)中只有一個808 6/8088微處理器,所有的總線控 制信號都由8086/8088 CPU直接產(chǎn) 生,將CPU的引腳信號MN/接高電 平(+5V)可使它工作于最小模式。 Vcc 圖4-4 8086最小模式下的系統(tǒng)總線構(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 控制總線 B15B0 HE A19A0 地址總線 D15D0 數(shù)據(jù)總線 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)中 包含有兩個以上的微處理器。其中一 個為主處理器,就是8086/8088 CPU, 其他是協(xié)處理器。 常與主處理器8086/8088 CPU相 配的協(xié)處理器有兩個:一個是專用于 數(shù)值運算的協(xié)處理器8087,使用它可 大幅度提高系統(tǒng)數(shù)值運算速度;另一 個專

19、用于I/O操作的協(xié)處理器8089。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 圖4-5 8086最大模式下的系統(tǒng)總線構(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 地址總線 D15D0 數(shù)據(jù)總線 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 控制總線 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 4.3 80868088的存儲器組織 4.3.1 存儲器的分段和物理地址的形成 1存儲器的組成 8086/8088系統(tǒng)中存儲器的每一個存儲 單元(字節(jié))都有一個獨立的地址編碼,地 址編碼采用20位二進制表示,地址譯碼器是 根據(jù)地址編碼才找到目標存儲單元的。 20位二進制地址編碼的范圍的十六進制表示 為00000HFFFFFH,最多可表示220(1MB) 地址編碼唯一的存儲單元,把20位二進制表 示的地址稱為物理地址。 1011011010110110 38F04H 存儲單元內(nèi)容存儲單元內(nèi)容 存儲單元地址存儲單元地址 (2

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

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

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

24、指令指 針I(yè)P。如果訪問存儲器讀寫操作數(shù),則通常 由數(shù)據(jù)段寄存器DS給出段基址,而其偏移地 址要由CPU的指令執(zhí)行部件EU根據(jù)指令中的 尋址方式來進行計算。如果所采用的尋址方 式是通過基址指針寄存器BP尋址,則段基址 要由堆棧段寄存器SS提供。如果對堆棧進行 操作,則段基址來源于堆棧段寄存器SS,偏 移地址來源于堆棧指針SP。 0 0 0 0 15 0 15 0 3 2 1 0 段 基 址 圖4-8 物理地址的形成過程 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)中存儲器的分體結(jié)構(gòu) 18086系統(tǒng)中存儲器的結(jié)構(gòu) 8086系統(tǒng)中,將1MB的存儲空間分成兩個 512KB的存儲體,一個存儲體中包含偶數(shù)地址單元,用數(shù)據(jù)總線的低8位 與它相連;另一個包含奇數(shù)地址單元,用數(shù)據(jù)總線的高8位與它相連。 兩個存儲體之間采用字節(jié)交叉編址方式,如圖2-9所示。 15 8 7 0 圖4-9 存儲器結(jié)構(gòu)圖 00001 00003 00005 2 20 1= FFFFF 00000 00002 00004 FFFFE= 2 20 - 2 512K8(位) 奇地址 存

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

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

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

29、,建立堆 棧指令為:MOV AX,1000H MOV SS, AX MOV SP,2000H (2)入棧。 入棧就是把數(shù)據(jù)壓入堆棧,又稱進棧。8086微處理器的入棧操作以字為單 位。入棧操作分為兩步:將堆棧指針寄存器SP的內(nèi)容減2,即是棧頂向低 地址方向移動一個字單元,指向新棧頂。即:SP SP 2;將一個字數(shù)據(jù) 推入到SP所指向的棧頂字單元,即:SP 字數(shù)據(jù)。 注意:入棧字的低字節(jié)存入低地址單元,高字節(jié)存入高地址單元。注意:入棧字的低字節(jié)存入低地址單元,高字節(jié)存入高地址單元。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 例2 若SS = 2000H,當前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ù)囊粋€字送寄存器或 存儲器,即:寄存器/存儲器 SP;堆 棧指針寄存器SP的內(nèi)容加2,指向新棧頂, 即:SP (SP)+ 2 若:若SS = 2000H,當前SP = 1232H, 將棧頂數(shù)據(jù)彈出送寄存器AX。操作如下:其 操作如圖2-14b所示。 第第4 4章章 微處理器及系統(tǒng)結(jié)構(gòu)微處理器及系統(tǒng)結(jié)構(gòu) 2.4.1 時鐘周期、總線周期和指令周期 1時鐘周期時鐘周期 時鐘周期就是系統(tǒng)主時鐘一個周期信號所持續(xù)的時間,大小等 于它頻率的倒數(shù),它是CPU的基本時間計量單位。例如,某CPU的主頻為8MHz, 則其時鐘的周期T = 1/f = 1/8MHz = 125 ns;若主頻為25MHz,時鐘周期

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

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

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

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論