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

下載本文檔

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

文檔簡介

8088微處理器主要內(nèi)容:8088CPU的功能結(jié)構(gòu);8088CPU外部引線及功能;內(nèi)部寄存器的功能;8088的存儲器組織。2.1概述8088、8086(16位CPU)16位內(nèi)部體系結(jié)構(gòu)20位地址總線(尋址范圍220=1MB)差別:指令預(yù)取隊列:8088為4字節(jié),8086為6字節(jié)數(shù)據(jù)總線引腳:8088有8根,8086有16根8088為準16位CPU,內(nèi)部DB為16位,但外部僅為8位,16位數(shù)據(jù)要分兩次傳送指令的執(zhí)行過程取出一條指令分析指令(指令譯碼)如果需要,從存儲器讀取操作數(shù)執(zhí)行指令如果需要,將結(jié)果寫入存儲器串行工作方式:8088以前的CPU采用串行工作方式:

1)CPU訪問存儲器(存取數(shù)據(jù)或指令)時要等待總線操作的完成2)CPU執(zhí)行指令時總線處于空閑狀態(tài)缺點:CPU無法全速運行取指令1譯碼1CPUBUS和內(nèi)存忙碌存結(jié)果1空閑空閑空閑取數(shù)據(jù)1空閑執(zhí)行1取指令2譯碼2存結(jié)果2空閑空閑取數(shù)據(jù)2空閑執(zhí)行2忙碌空閑忙碌空閑忙碌空閑忙碌空閑忙碌取指令1取指令2取指令3取指令4執(zhí)行1執(zhí)行2執(zhí)行3BUS忙碌執(zhí)行4CPUt1t0t2t3t4t5取指令5執(zhí)行5忙碌忙碌忙碌忙碌忙碌

總線空閑時預(yù)取指令,使CPU需要指令時能立刻得到。2.28088的功能結(jié)構(gòu)8088內(nèi)部設(shè)置了兩個并行執(zhí)行部件:EU和BIU。執(zhí)行單元EU:—負責(zé)執(zhí)行指令—從指令隊列中取指令代碼、譯碼、數(shù)據(jù)運算(ALU)、運算結(jié)果的特征保存在FLAGS中??偩€接口單元BIU:—負責(zé)與存儲器和I/O接口之間的數(shù)據(jù)傳送;

—從內(nèi)存中取指令送入指令預(yù)取隊列。8088的功能結(jié)構(gòu)框圖8088CPU內(nèi)部指令的操作具有流水線操作,具體由CPU內(nèi)部的兩個獨立部件(EU和BIU)去完成。取指令1取指令2譯碼1BIU存結(jié)果1取數(shù)據(jù)1取指令3取指令4

空閑執(zhí)行1譯碼2執(zhí)行2忙碌忙碌忙碌忙碌忙碌忙碌............EUBUS和內(nèi)存2.38088的流水線操作BIU不斷地從從內(nèi)存取指令送入指令預(yù)取隊列,EU不斷地從指令預(yù)取隊列取出指令執(zhí)行在一條指令執(zhí)行完成后,EU就可以立即執(zhí)行下一條指令,減少CPU為取指令而等待的時間,提高CPU的利用率和整體運行速度EU和BIU構(gòu)成了一個簡單的兩工位流水線指令預(yù)取隊列的作用相當(dāng)于流水線的傳送帶,在EU和BIU之間傳送指令執(zhí)行部件取指部件指令流水線操作的幾點說明8088/8086的指令預(yù)取隊列長度分別為4字節(jié)和6字節(jié),為FIFO(先進現(xiàn)出)結(jié)構(gòu)指令預(yù)取隊列至少要有一條指令,且只要有一條指令,EU就開始執(zhí)行指令預(yù)取隊列只要有空,BIU就自動執(zhí)行取指操作,直到填滿為止若BIU需要進行存儲器或I/O接口的數(shù)據(jù)存取操作,BIU在執(zhí)行完現(xiàn)行取指操作周期后才開始進行當(dāng)執(zhí)行轉(zhuǎn)移指令時,EU要求BIU從新的地址單元中重新取指令,隊列中原有指令就被消除設(shè)置指令隊列的好處指令預(yù)取隊列的存在使EU和BIU兩部分可同時進行工作,從而帶來以下兩個好處:提高了CPU的執(zhí)行效率降低了對內(nèi)存的存取速度的要求2.48088CPU的外部引腳40條引腳,雙列直插式封裝引腳定義的方法可大致分為:每個引腳只傳送一種信息(#RD等);引腳電平的高低不同的信號(IO/#M等);CPU工作于不同方式有不同的名稱和定義(#WR/#LOCK等);分時復(fù)用引腳(AD7~AD0等)。1456789101411231213151617181920Intel80884039383736353433323130292827262524232221GNDA14A13A12A11A10A9A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDRESETReady#Test#INTAALE#DENDT/#RIO/#M#WRHOLDAHOLD#RDMN/#MX#SS0A19/S6A18/S5A17/S4A16/S3A15VccQS1QS0#S0#S1#S2#LOCK#RQ/#GT1#RQ/#GT0工作于兩種模式:最小模式和最大模式主要引線(最小模式)8088工作在最小模式時,將由MN/#MX引腳接+5V電源數(shù)據(jù)信號線(DB)與地址信號線(AB):A19~A16/S3~S6:三態(tài),地址、狀態(tài)復(fù)用引腳。A15~A8:三態(tài),輸出。輸出8位地址信號。AD7~AD0:三態(tài),地址/數(shù)據(jù)分時復(fù)用線。ALE=1時為地址的低8位,ALE=0時傳送數(shù)據(jù)信號。主要的控制和狀態(tài)信號#WR:三態(tài),輸出。寫命令信號;#RD:三態(tài),輸出。讀命令信號;IO/#M:三態(tài),輸出。輸入輸出/存儲器控制信號,指出當(dāng)前訪問的是存儲器還是I/O接口。高:I/O端口,低:內(nèi)存;#DEN:三態(tài),輸出。數(shù)據(jù)允許信號,低電平時,表示DB上的數(shù)據(jù)有效;ALE:三態(tài),輸出。地址鎖存允許信號,高:CPU的AB總線上有有效地址;DT/#R:三態(tài),輸出。數(shù)據(jù)傳送控制方向信號,高:CPU輸出,低:CPU輸入。RESET:輸入,為高時,CPU執(zhí)行復(fù)位;#TEST:測試信號輸入引腳,CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對該引腳進行測試,高:CPU等待,低:執(zhí)行下一條指令。

READY:用于協(xié)調(diào)CPU與存儲器、I/O接口之間的速度差異。READY信號由存儲器或I/O接口發(fā)出。READY=0時,CPU就在T3后插入TW周期,插入的TW個數(shù)取決于READY何時變?yōu)楦唠娖?。中斷請求和響?yīng)信號INTR:輸入,可屏蔽中斷請求輸入端。高:有INTR中斷請求NMI:輸入,非屏蔽中斷請求輸入端。低

高,有NMI中斷請求#INTA:輸出,對INTR信號的響應(yīng)。2.58088的寄存器AHAL堆棧指針寄存器BHBLCHCLDHDL基址指針寄存器源變址寄存器目的變址寄存器指令指針狀態(tài)標(biāo)志代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器通用寄存器段寄存器控制寄存器AXBXCXDXSPBPSIDIIPFLAGSCSDSSSES2.5.1通用寄存器15700~158~150~7AXAHALBXBHBLCXCHCLDXDHDLBPSPSIDI1.數(shù)據(jù)寄存器常用來存放參與運算的操作數(shù)或運算結(jié)果AX:累加器。多用于存放中間運算結(jié)果。所有I/O指令必須都通過AX與接口傳送信息;BX:基址寄存器。在間接尋址中用于存放基地址;CX:計數(shù)寄存器。用于在循環(huán)或串操作指令中存放循環(huán)次數(shù)或重復(fù)次數(shù);CL是移位專用的;DX:數(shù)據(jù)寄存器。在32位乘除法運算時,存放高16位數(shù);在間接尋址的I/O指令中存放I/O端口地址。2.地址指針寄存器SP和BP都和堆棧的操作有關(guān)堆棧:硬堆棧和軟堆棧硬堆棧:CPU的寄存器按照FILO的規(guī)律存儲信息軟堆棧:在內(nèi)存里開辟一片區(qū)域內(nèi)存中一個按FILO方式操作的特殊區(qū)域每次壓棧和退棧均以WORD為單位堆棧用于存放返回地址、過程參數(shù)或需要保護的數(shù)據(jù)常用于響應(yīng)中斷或子程序調(diào)用堆棧操作SPSSSS壓棧前退棧后高低低高高12HSSF0HSP壓棧后低高SPSPSPF0H12HSPSP始終指向堆棧的頂部SP:堆棧指針寄存器,其內(nèi)容為棧頂?shù)钠频刂罚籅P:基址指針寄存器,常用于在訪問內(nèi)存時存放內(nèi)存單元的偏移地址。BX和BP在應(yīng)用上的區(qū)別:作為通用寄存器,二者均可用于存放數(shù)據(jù);作為基址寄存器,BX通常用于尋址數(shù)據(jù)段;BP則通常用于尋址堆棧段。BX一般與DS或ES搭配使用3.變址寄存器SI:源變址寄存器DI:目的變址寄存器變址寄存器常用于指令的間接尋址或變址尋址在串操作指令中,用SI存放源操作數(shù)的偏移地址,而用DI存放目標(biāo)操作數(shù)的偏移地址,內(nèi)容可以自動變化串:在內(nèi)存里面一組連續(xù)的數(shù)據(jù)2.5.2指令指針寄存器IP

內(nèi)容:下一條要取入CPU的指令在內(nèi)存中的偏移地址。IP的內(nèi)容自動修改:當(dāng)BIU從內(nèi)存中取出一個指令字節(jié)后,IP自動加1

IP始終指向下一條要取的指令的偏移地址。2.5.3標(biāo)志寄存器FLAGS狀態(tài)標(biāo)志:存放運算結(jié)果的特征控制標(biāo)志:控制某些特殊操作1514131211109876543210OFDFIFTFSFZFAFPFCF各標(biāo)志位的含義:

1、進位標(biāo)志CF:反映運算后最高位的進位或借位情況

=1最高位產(chǎn)生了進位或借位

=0最高位無進位或借位

2、奇偶標(biāo)志PF:反映操作結(jié)果中1的個數(shù)

=1數(shù)據(jù)最低8位中1的個數(shù)為偶數(shù)

=0數(shù)據(jù)最低8位中1的個數(shù)為奇數(shù)

3、輔助進位標(biāo)志AF:反映低4位向高4位有無進位或借位

=1D3→D4位產(chǎn)生了進位或借位

=0D3→D4位無進位或借位

4、零標(biāo)志ZF:反映運算結(jié)果是否為零

=1操作結(jié)果為0=0結(jié)果不為0

5、符號標(biāo)志SF:反映運算結(jié)果的符號情況

=1結(jié)果最高位為1=0結(jié)果最高位為06、溢出標(biāo)志OF:反映帶符號數(shù)的運算結(jié)果是否溢出

=1此次運算發(fā)生了溢出

=0無溢出

7、方向標(biāo)志DF:用于串的操作,每執(zhí)行一條串操作指令,對地址進行一次調(diào)整,由DF決定地址的增減。

=1地址自動按減量變化

=0地址自動按增量變化

8、陷阱標(biāo)志TF:單步中斷

=1調(diào)試按單步方式

=0非單步

9、中斷允許標(biāo)志IF:是否允許外部的可屏蔽中斷

=1允許響應(yīng)外部可屏蔽中斷

=0禁止響應(yīng)內(nèi)存中通常存放三種信息:代碼(指令):計算機執(zhí)行何種操作數(shù)據(jù)(字符、數(shù)值):程序處理的對象堆棧信息:保存返回地址和中間結(jié)果為清晰起見,這三類信息通常存放在各自的貯存區(qū)域內(nèi)。8088系統(tǒng)中,把可直接尋址的1M內(nèi)存空間分為稱作“段”的邏輯區(qū)域,每個段的物理長度為64K,每個段的起始地址存放在段寄存器中。2.5.4.段寄存器段寄存器用于存放內(nèi)存段的段基地址代碼段寄存器CS:當(dāng)前代碼段的段基址,用于存放指令代碼數(shù)據(jù)段寄存器DS:當(dāng)前數(shù)據(jù)段的段基址,用于存放數(shù)據(jù)或變量堆棧段寄存器SS:當(dāng)前堆棧段的段基址,用于保存寄存器內(nèi)容,傳遞參數(shù)附加段寄存器ES:

當(dāng)前附加段的段基址,用于存放數(shù)據(jù)或變量

DS和ES的主要區(qū)別在于串操作DS是源串的段基址,用SI尋址;ES是目的串的段基址,DI尋址。2.68088存儲器組織一、存儲器分段8088有20根地址線,可尋址220(1MB)個存儲單元,而內(nèi)部總線和內(nèi)部寄存器均為16位,如何生成20位地址?高地址低地址段基址最大64KB段段解決:引入“分段”概念,以獲得20位物理地址段寄存器提供段基址,SP、BP、SI、DI提供16位的段內(nèi)地址段寄存器其它寄存器段:存儲器的一個邏輯單位,長度可達64KB,每個段都有連續(xù)的存儲單元組成。段起始地址:每段第一個字節(jié)的位置,實際上是20位段基址段基址0000段起始地址段寄存器段內(nèi)偏移地址+20位物理地址段起始地址:必須能被16整除(即XXXX0H)幾個段可以相互重疊,也可指向同一個空間1M的內(nèi)存空間最多可以分成216=64K個段物理地址..60000H

60001H

60002H

60003H

60004H...12HF0H1BH08H1.物理地址:信息在存儲器中實際存放的地址。二、物理地址和邏輯地址8088有20根地址線,可以配置1M的存儲器,地址編號為00000H~FFFFFH邏輯地址:允許在程序中編排的地址。由段基址:偏移地址組成,是在指令中引用的形式地址60002H00H12H60000H0000段基地址(16位)段首地址×××???×××偏移地址=0002H2.邏輯地址段基址:決定了該段第一個字節(jié)的位置;段內(nèi)偏移量:該存儲單元相對于該段第一個字節(jié)的距離。段基址段內(nèi)偏移地址物理地址+16位20位00003.物理地址的計算物理地址=段基地址×16+偏移地址BIU中的地址加法器用來實現(xiàn)邏輯地址到物理地址的變換。例:1.已知邏輯地址為:2000H:1234H,求對應(yīng)的物理地址?解:物理地址=2000H*16+1234H=20000H+1234H=21234H2.已知邏輯地址為:2100H:0234H,求對應(yīng)的物理地址?解:物理地址=2100H*16+0234H=21234H

一個內(nèi)存單元的物理地址是唯一的,但邏輯地址不唯一例已知CS=150AH,DS=250AH,ES=2EF0H,SS=8FF0H,

DS段有一操作數(shù),其偏移地址=0204H,

1)畫出各段在內(nèi)存中的分布

2)指出各段首地址

3)該操作數(shù)的物理地址=?150A0H250A0H2EF00H8FF00HCSSSCSDSES解:各段分布及段首址見右圖所示操作數(shù)的物理地址為:250AH×10H+0204H=252A4H8088可同時訪問4個段,4個段寄存器中的內(nèi)容指示了每個段的基地址CSIP代碼段數(shù)據(jù)段堆棧段DS尋址方式SSSP或BP2.78088的工作時序微處理器按照一定的時序進行工作。幾個概念:時鐘周期:每兩個時鐘脈沖上升(下降)沿之間的時間間隔;由時鐘發(fā)生器產(chǎn)生。是計算機內(nèi)部最小的時間單位總線周期:CPU完成一次訪問內(nèi)存(或接口)操作所需要的時間。指令周期:執(zhí)行一條指令所需的時間典型的總線周期:由4個時鐘周期組成時序關(guān)系:總線周期時鐘周期等待周期空閑周期指令周期基本的總線周期時序CLKIO/#MA19–A16/S6

–S3

A15–A8AD7–AD0ALE#RDDT/#R

#DENA7–A0數(shù)據(jù)輸入A19–A16S6–S3高=IO低=M8088讀總線周期CLKIO/#MA19–A16/S6

–S3

A15–A8AD7–AD0ALE#WRDT/#R

#DEN高=IO低=MA19–A16S6–S3A7–A0數(shù)據(jù)輸出8088寫總線周期8088時序小結(jié)正常的8088總線周期(無論是讀還是寫)至少4個時鐘周期在T1時間,送出地址A19~A0,同時送出地址鎖存允許信號ALE在寫總線周期,CPU從T2開始把數(shù)據(jù)送到總線上并維持到T4在讀總線周期中,CPU在T3到T4期間讀入總線上的數(shù)據(jù)微型計算機采用總線結(jié)構(gòu)在CPU、內(nèi)存、

溫馨提示

  • 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)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論