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

下載本文檔

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

文檔簡介

《微機(jī)原理及其應(yīng)用》第4章微處理器及系統(tǒng)結(jié)構(gòu)4.1

Intel8086/8088CPU主要特性及內(nèi)部結(jié)構(gòu)4.28086/8088CPU工作模式和引腳功能4.38086/8088的存儲(chǔ)器組織目錄內(nèi)容簡介:8086/8088微處理器系統(tǒng)特性及結(jié)構(gòu);內(nèi)部寄存器的結(jié)構(gòu)特點(diǎn),8086/8088微機(jī)系統(tǒng)的存儲(chǔ)器組織。4.48086/8088的總線操作和時(shí)序4.580x86微處理器簡介第4章微處理器及系統(tǒng)結(jié)構(gòu)4.1Intel8086/8088CPU主要特性及內(nèi)部結(jié)構(gòu)4.1.18086/8088CPU主要特性

Intel8086是16位微處理器,采用HMOS工藝40條引腳封裝,使用5V電源,時(shí)鐘頻率5MHz。主要特性如下:(1)8086CPU數(shù)據(jù)總線為16位,8088CPU數(shù)據(jù)總線為8位。(2)地址總線都是20位,低16位與數(shù)據(jù)總線分時(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)。4.1.28086/8088CPU內(nèi)部結(jié)構(gòu)

第2章微處理器及系統(tǒng)結(jié)構(gòu)地址總線(20位)圖4-18086CPU內(nèi)部結(jié)構(gòu)框圖ALU數(shù)據(jù)總線(16位)地址加法器隊(duì)列總線(8位)指令隊(duì)列總線接口單元(BIU)123456DS內(nèi)部通信寄存器總線控制邏輯數(shù)據(jù)總線(16位)8086總線暫存器ALUFLAGSEU控制器指令執(zhí)行單元(EU)通用寄存器AXAHALBXBHBLCXCHCLDXDHDLSPBPDISI∑CSSSESIP從圖4-1中可看出,8086CPU由兩部分即指令執(zhí)行單元EU和總線接口單元BIU組成。指令執(zhí)行單元由算術(shù)邏輯運(yùn)算單元ALU、標(biāo)志寄存器FLAGS、通用寄存器組和EU控制器等4個(gè)部件組成,其主要功能是執(zhí)行指令。總線接口部件BIU由地址加法器、專用寄存器組、指令隊(duì)列和總線控制邏輯等4個(gè)部件組成,其主要功能是形成訪問存儲(chǔ)器的物理地址、訪問存儲(chǔ)器取得指令并暫存到指令隊(duì)列中等待執(zhí)行,訪問存儲(chǔ)器或I/O端口以及讀取操作數(shù)參與EU運(yùn)算或存放運(yùn)算結(jié)果等。8088與8086的區(qū)別:1)8088BIU中指令隊(duì)列長度只有4B,8086BIU指令隊(duì)列長度有6B。2)8088BIU通過總線控制電路與外部交換數(shù)據(jù)的總線寬度是8位,總線控制電路與專用寄存器組之間的數(shù)據(jù)總線寬度也是8位,而EU內(nèi)部總線仍是16位,所以把8088稱為準(zhǔn)16位微處理器。

第4章微處理器及系統(tǒng)結(jié)構(gòu)4.1.38086CPU的寄存器結(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/8088CPU的內(nèi)部寄存器如圖4-2所示。

圖4-28086/8088CPU內(nèi)部寄存器

15870SPBPSIDI堆棧指針寄存器基址指針寄存器源變址寄存器目的變址寄存器指針和變址寄存器代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器段寄存器組CSDSSSES指令指針寄存器標(biāo)志寄存器控制寄存器組IPFLAGS累加器基址寄存器計(jì)數(shù)寄存器數(shù)據(jù)寄存器數(shù)據(jù)寄存器AXAHALBXBHBLCXCHCLDXDHDL通用寄存器組第4章微處理器及系統(tǒng)結(jié)構(gòu)1.通用寄存器組

8個(gè)16位通用寄存器,它們可分成兩組。一組由AX、BX、CX和DX構(gòu)成,稱為數(shù)據(jù)寄存器,可用來存放16位的數(shù)據(jù)或地址,也可把它們當(dāng)作8個(gè)8位寄存器來使用,即把每個(gè)通用寄存器的高半部分和低半部分分開。低半部分被命名為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章微處理器及系統(tǒng)結(jié)構(gòu)3.標(biāo)志寄存器FLAGS8086/8088CPU中設(shè)置了一個(gè)16位標(biāo)志寄存器FLAGS,用來存放運(yùn)算結(jié)果的特征和控制標(biāo)志,其格式如下。OFDFIFTFSFZFAFPFCF1110987642015標(biāo)志寄存器FLAGS中存放的9個(gè)標(biāo)志位可分成兩類,一類叫狀態(tài)標(biāo)志,用來表示運(yùn)算結(jié)果的特征,包括CF、PF、AF、ZF、SF和OF;另一類叫控制標(biāo)志,用來控制CPU的操作,包括IF、DF和TF。各標(biāo)志位的定義說明如下。(1)CF:進(jìn)位標(biāo)志位。CF=1,表示本次運(yùn)算中最高位(第7位或第15位)有進(jìn)位(加法運(yùn)算時(shí))或有借位(減法運(yùn)算時(shí))。注:CF=1表示二個(gè)無符號(hào)數(shù)加法或減法運(yùn)算的結(jié)果超出了該字長能夠表示的數(shù)據(jù)范圍。例如,執(zhí)行8位數(shù)據(jù)運(yùn)算后,CF=1表示加法結(jié)果超過了255,或者是減法得到的差小于零。

第4章微處理器及系統(tǒng)結(jié)構(gòu)(2)PF:奇偶標(biāo)志位。PF=1,表示本次運(yùn)算結(jié)果的低八位中有偶數(shù)個(gè)“1”;PF=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,表示算術(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é)果超出了該字長所能表示的范圍。例如,字長為8位時(shí),OF=1表示運(yùn)算結(jié)果大于127或小于-128第4章微處理器及系統(tǒng)結(jié)構(gòu)1.2.2微型計(jì)算機(jī)的工作原理例1若AL=3BH,AH=7DH,試指出AL中的內(nèi)容和AH中的內(nèi)容相加、相減后,標(biāo)志CF、AF、PF、SF、OF和ZF的狀態(tài)。

解:(1)AL+AH00111011AL+01111101AH10111000由運(yùn)算結(jié)果可知:CF=0(無進(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–AH00111011AL-01111101AH10111110由運(yùn)算結(jié)果可知:CF=1(有借位);AF=1(有輔助借位);PF=1(有偶數(shù)個(gè)1);SF=1(符號(hào)位為1);OF=0(同號(hào)相減,無溢出);ZF=0(運(yùn)算結(jié)果不為0)。

第4章微處理器及系統(tǒng)結(jié)構(gòu)(7)IF:中斷允許標(biāo)志位。IF=1,表示允許CPU響應(yīng)可屏蔽中斷。IF標(biāo)志可通過STI指令置位,也可通過CLI指令復(fù)位。(8)DF:方向標(biāo)志位。在串操作指令中,若DF=0,表示串操作指令執(zhí)行后地址指針自動(dòng)增量,串操作由低地址向高地址進(jìn)行;DF=1,表示地址指針自動(dòng)減量,即串操作由高地址向低地址進(jìn)行。DF標(biāo)志位可通過STD指令置位,也可通過CLD指令復(fù)位。(9)TF:單步標(biāo)志位。TF=1,表示控制CPU進(jìn)入單步工作方式。在這種工作方式下,CPU每執(zhí)行完一條指令就會(huì)自動(dòng)產(chǎn)生一次內(nèi)部中斷。第4章微處理器及系統(tǒng)結(jié)構(gòu)4.指令指針寄存器IP8086/8088CPU中有一個(gè)16位指令指針寄存器IP,用來存放將要執(zhí)行的下一條指令在代碼段中的偏移地址。在程序運(yùn)行過程中,BIU自動(dòng)修改IP中的內(nèi)容,使它始終指向?qū)⒁獔?zhí)行的下一條指令。4.28086/8088CPU工作模式和引腳功能4.2.18086/8088CPU引腳功能1.8086/8088CPU的主要引腳及功能8086/8088CPU是十六位的微處理器,它向外的信號(hào)至少應(yīng)包含16條數(shù)據(jù)線,20條地址線,再加上其他一些必要的控制信號(hào)。為了減少芯片引腳數(shù)量,對(duì)部分引腳采用了分時(shí)復(fù)用的方式,構(gòu)成40條引腳的雙列直插式封裝。8086CPU封裝外形與內(nèi)部各功能部件之間的相互連接如圖4-3a)所示。a)HLDA(RQ1/GT1)HOLD(RQ0/GT0)INTRGND1408086CPUAD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMICLKGNDVcc(+5V)A16/S3A18/S5A19/S6WR(LOCK)AD15A17/S4BHE/S7MN/MXRDM/IO(S2)DT/R(S1)DEN(S0)ALE(QS0)INTA(QS1)TESTREADYRESET2021圖4-38086CPU封裝外形與實(shí)物圖a)封裝外形第4章微處理器及系統(tǒng)結(jié)構(gòu)(1)AD15~AD0分時(shí)復(fù)用地址數(shù)據(jù)線。三態(tài)單向輸出;在T2~T4期間作數(shù)據(jù)線D15~D0,雙向三態(tài)輸入/輸出。(2)A19/S6~A16/S3分時(shí)復(fù)用的地址/狀態(tài)線。用作地址線時(shí),A19~A16與AD15~AD0一起構(gòu)成訪問存儲(chǔ)器的20位物理地址。

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

第4章微處理器及系統(tǒng)結(jié)構(gòu)2.8086/8088的工作模式

8086/8088CPU為適應(yīng)不同的應(yīng)用環(huán)境,設(shè)置有兩種工作模式,即最大工作模式和最小工作模式。(1)最小工作模式。所謂最小工作模式,是指系統(tǒng)中只有一個(gè)8086/8088微處理器,所有的總線控制信號(hào)都由8086/8088CPU直接產(chǎn)生,將CPU的引腳信號(hào)MN/接高電平(+5V)可使它工作于最小模式。Vcc圖4-48086最小模式下的系統(tǒng)總線構(gòu)成地址鎖存器(8282×3)8284ACLKREADYRESET8086CPUAD15~AD0HEOEA19~A16INTRHOLDTA15~A0數(shù)據(jù)收發(fā)器(8286×2)STBDI控制總線B15~B0HEA19~A0地址總線D15~D0數(shù)據(jù)總線DOHLDARDYOEINTAM/IORDWRDENDT/R第4章微處理器及系統(tǒng)結(jié)構(gòu)(2)最大工作模式所謂最大工作模式,是指系統(tǒng)中包含有兩個(gè)以上的微處理器。其中一個(gè)為主處理器,就是8086/8088CPU,其他是協(xié)處理器。常與主處理器8086/8088CPU相配的協(xié)處理器有兩個(gè):一個(gè)是專用于數(shù)值運(yùn)算的協(xié)處理器8087,使用它可大幅度提高系統(tǒng)數(shù)值運(yùn)算速度;另一個(gè)專用于I/O操作的協(xié)處理器8089。第4章微處理器及系統(tǒng)結(jié)構(gòu)圖4-58086最大模式下的系統(tǒng)總線構(gòu)成CEN地址鎖存器(8282×3)8284ARESETREADYCLK8086CPUDENAD15~AD0HEALEA19~A16MRDCTA15~A0數(shù)據(jù)收發(fā)器(8286×2)STBDIB15~B0BHEA19~A0地址總線D15~D0數(shù)據(jù)總線DORDYS0S1S2S1S2S0MWTCAMWCIORCIOWCAIOWCAENIOBCLK+5VIORCINTRRQ/GT0RQ/GT18288控制總線第4章微處理器及系統(tǒng)結(jié)構(gòu)4.38086/8088的存儲(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)制表示為00000H~FFFFFH,最多可表示220(1MB)地址編碼唯一的存儲(chǔ)單元,把20位二進(jìn)制表示的地址稱為物理地址。

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

段1≤64KB段2≤64KB段3≤64KB4≤64KB00000H段1起點(diǎn)段2起點(diǎn)段3起點(diǎn)段4起點(diǎn)圖4-6存儲(chǔ)器分段示意圖FFFFFH12340H段基址一個(gè)段2233FH0000H0001H0002H偏移地址FFFFH第4章微處理器及系統(tǒng)結(jié)構(gòu)3.存儲(chǔ)器地址

(1)物理地址:8088/8086可直接尋址1MB的存儲(chǔ)空間,其地址區(qū)域?yàn)?0000H—FFFFFH,與存儲(chǔ)單元一一對(duì)應(yīng)的20位地址,稱之為存儲(chǔ)單元的物理地址。(2)偏移地址:偏移地址是某存儲(chǔ)單元相對(duì)其所在段起始位置的偏移字節(jié)數(shù),或簡稱偏移量,是一個(gè)16位的地址。(3)物理地址的形成:物理地址是由段地址與偏移地址共同決定的,段地址來自于段寄存器(CS、DS、ES、SS),是十六位地址,由段地址及偏移地址計(jì)算物理地址的表達(dá)式如下:物理地址=段地址×16+偏移地址(4)邏輯地址:程序中用來描述存儲(chǔ)單元位置的地址稱為邏輯地址,它以“段基址:偏移地址”的形式給出。

代碼段數(shù)據(jù)段附加段堆棧段CSDSESSS段寄存器與段對(duì)應(yīng)關(guān)系第4章微處理器及系統(tǒng)結(jié)構(gòu)4.邏輯地址的來源如果訪問存儲(chǔ)器的指令,則段基址來源于代碼段寄存器CS,偏移地址來源于指令指針I(yè)P。如果訪問存儲(chǔ)器讀寫操作數(shù),則通常由數(shù)據(jù)段寄存器DS給出段基址,而其偏移地址要由CPU的指令執(zhí)行部件EU根據(jù)指令中的尋址方式來進(jìn)行計(jì)算。如果所采用的尋址方式是通過基址指針寄存器BP尋址,則段基址要由堆棧段寄存器SS提供。如果對(duì)堆棧進(jìn)行操作,則段基址來源于堆棧段寄存器SS,偏移地址來源于堆棧指針SP。00001501503210段基址圖4-8物理地址的形成過程190地址加法器物理地址偏移地址例如,某單元處于數(shù)據(jù)段中,已知DS=2300H,偏移地址為0658H,則其物理地址為:2300H×10H+0658H=23658H

第4章微處理器及系統(tǒng)結(jié)構(gòu)4.3.28086系統(tǒng)中存儲(chǔ)器的分體結(jié)構(gòu)1.8086系統(tǒng)中存儲(chǔ)器的結(jié)構(gòu)8086系統(tǒng)中,將1MB的存儲(chǔ)空間分成兩個(gè)512KB的存儲(chǔ)體,一個(gè)存儲(chǔ)體中包含偶數(shù)地址單元,用數(shù)據(jù)總線的低8位與它相連;另一個(gè)包含奇數(shù)地址單元,用數(shù)據(jù)總線的高8位與它相連。兩個(gè)存儲(chǔ)體之間采用字節(jié)交叉編址方式,如圖2-9所示。15870圖4-9存儲(chǔ)器結(jié)構(gòu)圖000010000300005220–1=FFFFF000000000200004FFFFE=220-2

512K×8(位)奇地址存儲(chǔ)體(A0=1)

512K×8(位)偶地址存儲(chǔ)體(A0=0)第4章微處理器及系統(tǒng)結(jié)構(gòu)2.存儲(chǔ)器存放數(shù)據(jù)情況

若存放的數(shù)據(jù)是以字節(jié)為單位,在存儲(chǔ)器中按順序排列存放。例在10000H開始存儲(chǔ)單元存放01H、13H、0ABH、86H,則在存儲(chǔ)器中存放數(shù)據(jù)的情況如圖2-12。若存放的數(shù)據(jù)是以字(16位)為單位的,則將每個(gè)字的低字節(jié)存放在低地址、高字節(jié)存放在高地址,并以低地址作為該字的地址。例在10003H開始存放1234H、567AH兩個(gè)字,在存儲(chǔ)器中存放數(shù)據(jù)的情況如圖4-12。

01H10000H13H10001HABH10002H86H10003H34H10004H12H10005H7AH10006H56H10007H圖4-12存儲(chǔ)器存放數(shù)據(jù)情況第4章微處理器及系統(tǒng)結(jié)構(gòu)4.3.38086/8088系統(tǒng)中的堆棧堆棧是在計(jì)算機(jī)中的RAM存儲(chǔ)區(qū)開辟的一個(gè)特定區(qū)域,按照“后進(jìn)先出”的原則組織。主要用于暫存數(shù)據(jù)和斷點(diǎn)地址。1.堆棧的結(jié)構(gòu)

存儲(chǔ)區(qū)的存儲(chǔ)方式采用一端固定(稱為棧底),另一端浮動(dòng)(稱為棧頂)的方式,即只允許在活動(dòng)端進(jìn)行數(shù)據(jù)的輸入或刪除。

2.堆棧的操作堆棧段在存儲(chǔ)區(qū)中的位置由堆棧段寄存器SS和堆棧指針SP來確定。SS中存放堆棧段的段基址,SP中存放棧頂?shù)牡刂?,此地址表示棧頂離段首址的偏移量,因此用SP指示棧元素進(jìn)棧和出棧的偏移地址的變化。

堆棧段首地址SS10000H圖4-138086堆棧在存儲(chǔ)器中的分布情況11FFBH11FFDH11FFEH11FFFH11FFAH11FFCHSP12000H棧底≤64KB…第4章微處理器及系統(tǒng)結(jié)構(gòu)(1)建棧。建立堆棧就是設(shè)定堆棧的段基址和棧底,用戶可以通過數(shù)據(jù)傳送指令把堆段的段基址送入段寄存器SS,把棧底的偏移地址送入堆棧指針寄存器SP。此時(shí)棧中無數(shù)據(jù),是一個(gè)空棧。若SS=1000H,SP=2000H,則堆棧的情況如圖2-13所示,建立堆棧指令為:MOVAX,1000HMOVSS,AXMOVSP,2000H

(2)入棧。入棧就是把數(shù)據(jù)壓入堆棧,又稱進(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é)存入高地址單元。第4章微處理器及系統(tǒng)結(jié)構(gòu)例2若SS=2000H,當(dāng)前SP=1234H,將寄存器AX中的數(shù)據(jù)7C9FH壓入堆棧。操作如下:①修改SP,使其指向新棧頂,即:SP=1232H。②AX的內(nèi)容壓入棧頂字單元。即:AL送21232H單元,AH送21233H單元。其操作如圖2-14a所示。7CH9FH5CH20HSP1232H21232H21233H21234H9FH7CHXXAX入棧操作設(shè)SS=2000Ha)SP1234H21232H21233H21234H20H5CHXXAX出棧操作圖4-14入棧、出棧操作示意圖a)入棧操作b)出棧操作b)(3)出棧。出棧是從堆棧中彈出數(shù)據(jù)。出棧的操作順序與入棧相反。①將棧頂?shù)囊粋€(gè)字送寄存器或存儲(chǔ)器,即:寄存器/存儲(chǔ)器←[SP];②堆棧指針寄存器SP的內(nèi)容加2,指向新棧頂,即:SP←(SP)+2

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

CPU的一切操作都是在系統(tǒng)主時(shí)鐘CLK的控制下按節(jié)拍有序地進(jìn)行的。CPU執(zhí)行一條指令的時(shí)間(包括取指令和執(zhí)行該指令所需的全部時(shí)間)稱為指令周期。3.總線周期在一個(gè)指令周期內(nèi),常常需要對(duì)總線上的存儲(chǔ)器或I/O端口進(jìn)行一次或多次讀寫操作。CPU通過外部總線對(duì)存儲(chǔ)器或I/O端口進(jìn)行一次讀寫操作的過程稱為總線周期。顯然,一個(gè)指令周期應(yīng)由若干個(gè)總線周期組成,而一個(gè)總線周期由若干個(gè)時(shí)鐘周期(T)組成。4.48086/8088的總線操作和時(shí)序第4章微處理器及系統(tǒng)結(jié)構(gòu)4.4.28086/8088CPU的基本總線周期在8086/8088CPU中,所有的外部操作(讀寫存儲(chǔ)器或I/O端口)都是由總線接口單元BIU通過系統(tǒng)總線完成的。因此,把BIU通過系統(tǒng)總線對(duì)存儲(chǔ)器或I/O端口作一次讀寫操作的過程稱為一個(gè)總線周期??梢姡挥挟?dāng)BIU需要訪問內(nèi)存或I/O端口時(shí),才需要執(zhí)行總線周期。也就是說,總線周期是根據(jù)需要才會(huì)出現(xiàn)的。8086/8088CPU為了完成自身的功能,需要執(zhí)行各種操作,如啟動(dòng)和復(fù)位操作、各種總線操作、中斷操作、總線保持或總線請(qǐng)求操作等,這些操作的執(zhí)行都是在時(shí)鐘脈沖CLK的同步下,按時(shí)序一步一步地進(jìn)行,這樣,就構(gòu)成了CPU操作的時(shí)序。第4章微處理器及系統(tǒng)結(jié)構(gòu)4.4.3典型總線周期(總線操作)總線操作:8086/8088CPU凡是與存儲(chǔ)器或I/O端口交換數(shù)據(jù),或取指令填充指令隊(duì)列時(shí)都需要通過BIU執(zhí)行總線周期,即為總線操作??偩€操作按數(shù)據(jù)傳送方向可分為總線讀操作和總線寫操作。前者是指CPU從存儲(chǔ)單元或I/O端口中讀取數(shù)據(jù),后者是指CPU將數(shù)據(jù)寫入指定存儲(chǔ)單元或I/O端口。1.最小模式下的總線讀操作

總線讀操作是8086/8088CPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù)的操作,在總線讀周期內(nèi)完成。圖2-9是8086CPU在最小模式下從存儲(chǔ)器或I/O端口讀取數(shù)據(jù)(即執(zhí)行讀操作)的時(shí)序。2.最小模式下的總線寫操作

8086/8088的寫總線周期和讀操作一樣,基本寫周期也包含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所示為最小模式下的總線寫操作時(shí)序。

第4章微處理器及系統(tǒng)結(jié)構(gòu)圖4-98086最小模式下總線讀周期的時(shí)序RDA19/S6~A16/S3AD15~AD0TW(1~n)CLKT1T2T3ALEDT/RDE

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論