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

下載本文檔

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

文檔簡介

第3章

80X86微處理器HenanUniversityofTechnology引言微處理器是微機的核心部件;盡管后來的PC機的微處理器的功能和結(jié)構(gòu)變化很大,但從基本概念、結(jié)構(gòu)和指令格式上來說,仍然是8086/8088的延續(xù)和提高;因此,我們重點講解8086/8088CPU的結(jié)構(gòu)。內(nèi)容提要

80X86微處理器簡介

8086/8088微處理器

8086/8088存儲器和I/O組織§3.180X86微處理器簡介幾個概念集成度是指CPU芯片中所包含的晶體管數(shù)主頻是指芯片所使用的主時鐘頻率,它直接影響計算機的運行速度數(shù)據(jù)總線是計算機中各個組成部件間進行數(shù)據(jù)傳送時的公共通道內(nèi)數(shù)據(jù)總線寬度是指CPU芯片內(nèi)部數(shù)據(jù)傳送的寬度(位數(shù))外數(shù)據(jù)總線寬度是指CPU與外部交換數(shù)據(jù)時的數(shù)據(jù)寬度。地址總線是在對存儲器或I/O端口進行訪問時,傳送由CPU提供的要訪問的存儲單元或I/O端口的地址信息的總線,其寬度決定了處理器能直接訪問的主存容量大小為了滿足微型計算機對存儲器系統(tǒng)高速度、大容量、低成本的要求,目前,微型計算機系統(tǒng)采用三級存儲器組織結(jié)構(gòu)。當(dāng)前正在執(zhí)行的程序或要使用的數(shù)據(jù)必須從外存調(diào)入主存后才能被CPU讀取并執(zhí)行。

Cache是面向CPU的存儲器,用來存放CPU比較頻繁訪問的數(shù)據(jù)和代碼。高速緩沖存儲器(Cache)

微處理器CPU

主存儲器(主存)

外存儲器(外存)Cache的最大特點是存取速度快,但容量較小,將當(dāng)前使用頻率較高的程序和數(shù)據(jù)通過一定的替換機制從主存放入Cache,CPU在取指令或讀取操作數(shù)時,同時對Cache和主存進行訪問,如果Cache命中,則終止對主存的訪問,直接從Cache中將指令或數(shù)據(jù)送CPU處理,由于Cache的速度比主存快得多,因此,Cache的使用大大提高了CPU讀取指令或數(shù)據(jù)的速度。80386之前的CPU都沒有Cache。80386CPU內(nèi)無Cache,而由與之配套使用的Intel82385Cache控制器實現(xiàn)CPU之外的Cache管理。80486之后的CPU芯片內(nèi)部都集成了一至多個Cache。內(nèi)容提要

80X86微處理器簡介

8086/8088微處理器

8086/8088存儲器和I/O組織§3.2

8086/8088微處理器InteL8086CPU

16位微處理器,外型為雙列直插式,有40個引腳;

時鐘頻率有3種:8086型微處理器為5MHz,8086—2型為8MHz,8086—1型為10MHz;

8086CPU有16根數(shù)據(jù)線和20根地址線,直接尋址空間為220,即為1M字節(jié)。有64個I/O端口。

8088CPU內(nèi)部結(jié)構(gòu)與8086基本相同(但對外數(shù)據(jù)總線只有8條,稱為準(zhǔn)16位微處理器)。8086的內(nèi)部結(jié)構(gòu)內(nèi)部暫存器

IP

ES

SS

DS

CS輸入/輸出控制電路外部總線執(zhí)行部分控制電路∑ALU標(biāo)志寄存器

AHAL

BHBLCHCL

DHDL

SP

BP

SI

DI通用寄存器地址加法器指令隊列執(zhí)行部件(EU)總線接口部件(BIU)16位20位8位16位返回123456§3.2

8086/8088微處理器一、8086/8088內(nèi)部結(jié)構(gòu)8086的內(nèi)部結(jié)構(gòu)從功能分成兩個單元總線接口單元BIU(BusInterfaceUnit)——管理8086與系統(tǒng)總線的接口,負責(zé)CPU對存儲器和外設(shè)進行訪問執(zhí)行單元EU(ExecutionUnit)——負責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運算兩個單元相互獨立,分別完成各自操作兩個單元可以并行執(zhí)行,實現(xiàn)指令取指和執(zhí)行的流水線操作§3.2

8086/8088微處理器一、8086/8088內(nèi)部結(jié)構(gòu)執(zhí)行單元EU功能:執(zhí)行指令包括以下部件:

算術(shù)邏輯單元(ALU)

8個通用寄存器

1個標(biāo)志寄存器

EU控制電路從指令隊列中取出指令譯碼在ALU中完成數(shù)據(jù)運算保存運算結(jié)果,并把特征保存在標(biāo)志寄存器FLAGS中§3.2

8086/8088微處理器一、8086/8088內(nèi)部結(jié)構(gòu)總線接口單元BIU包括以下部件:

20位的地址加法器4個段寄存器1個指令地址寄存器(指令指針寄存器)1個暫存寄存器總線接口邏輯電路6(4)字節(jié)的指令隊列功能:物理地址形成、取指令、指令排隊、讀/寫操作數(shù)、總線控制。內(nèi)部暫存器

IP

ES

SS

DS

CS輸入/輸出控制電路外部總線∑地址加法器指令隊列總線接口部件(BIU)20位8位16位123456§3.2

8086/8088微處理器一、8086/8088內(nèi)部結(jié)構(gòu)

BIU和EU作為CPU的兩大部件,雖然不是同步工作的,但是它們相互配合,并行工作,提高了效率。1、EU和BIU的操作原則

傳統(tǒng)的CPU執(zhí)行指令的過程是:取指令->執(zhí)行指令->再取指令->……,串行執(zhí)行。

8086是把“取指令”和“執(zhí)行指令”分別由BIU和EU兩個部件來完成。當(dāng)EU正在執(zhí)行指令時,BIU可以從內(nèi)存中取出指令字節(jié),放在指令隊列中。這樣,使得“取指令”和“執(zhí)行指令”的操作在時間上是并行的。舉例串行執(zhí)行方式早期的CPU:執(zhí)行指令采用串行執(zhí)行方式注意兩點:1)CPU訪問內(nèi)存(存取數(shù)據(jù)或指令)時要等待總線操作的完成2)CPU執(zhí)行指令時總線和內(nèi)存處于空閑狀態(tài)缺點:CPU和總線/內(nèi)存不能同時運行——效率?解決:總線空閑時預(yù)取指令,使CPU需要指令時能立刻得到取數(shù)據(jù)1執(zhí)行1取數(shù)據(jù)2CPU總線和內(nèi)存忙碌存結(jié)果1忙碌取指令2忙碌忙碌執(zhí)行2…譯碼1取指令1忙碌譯碼2存結(jié)果2忙碌空閑空閑空閑空閑空閑空閑空閑空閑空閑空閑空閑§3.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)1.寄存器的作用:存放運算過程中所需要的操作數(shù)地址、操作數(shù)及中間結(jié)果。3.寄存器的分類:2.寄存器的特點:存取速度比存儲器快得多。

通用寄存器組

指針和變址寄存器

段寄存器

指令指針及標(biāo)志位寄存器?!?.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)數(shù)據(jù)寄存器:AX、BX、CX、DX共4個,它們即是16位寄存器,每個寄存器又可以分開當(dāng)作兩個8位寄存器使用:AXAH,ALBXBH,BLCXCH,CLDXDH,DL這4個寄存器的一般用途是存放參與運算的操作數(shù)或運算結(jié)果。除此之外,它們也有一些習(xí)慣用法。AHALBHBLCHCLDHDL§3.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)1、通用寄存器§3.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)

數(shù)據(jù)寄存器特有的習(xí)慣用法AX:累加器。用于存放中間運算結(jié)果。最常用。BX:基址寄存器。在訪問內(nèi)存時,用于存放內(nèi)存單元的偏移地址(寄存器間接尋址);CX:計數(shù)寄存器。用于在循環(huán)指令中存放循環(huán)或重復(fù)次數(shù);DX:數(shù)據(jù)寄存器。可存放一般數(shù)據(jù),還用于在32位乘除法運算時,存放數(shù)據(jù)的高16位,AX低16位;I/O指令中存放I/O端口地址?!?.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)地址指針寄存器:SP、BPSP(StackPointer):堆棧指針寄存器,其內(nèi)容為堆棧棧頂單元的偏移地址。BP(BasePointer):基址指針寄存器,常用于存放堆棧內(nèi)的偏移地址。這兩個寄存器都默認與堆棧段寄存器(SS)聯(lián)合使用§3.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)

兩個基址寄存器:BX與BP在應(yīng)用上的區(qū)別作為通用寄存器:

二者均可用于存放操作數(shù),參與各種運算。作為基址寄存器,在默認情況下:

BX用于尋址數(shù)據(jù)段(即存放數(shù)據(jù)段的偏移地址);

BP用于尋址堆棧段(即存放堆棧段的偏移地址)。與段寄存器的搭配使用時,在默認情況下:

BX與數(shù)據(jù)段寄存器DS搭配使用;

BP與堆棧段寄存器SS搭配使用?!?.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)變址寄存器:SI、DISI:源變址寄存器(SourceIndex)DI:目標(biāo)變址寄存器(DestinationIndex)字符串操作指令中,SI存放源操作數(shù)的偏移地址,DI存放目標(biāo)操作數(shù)的偏移地址?!?.2

8086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)2、段寄存器段寄存器:CS、DS、ES、SSCS(CodeSegment),代碼段寄存器中存放程序代碼段起始地址的高16位。DS(DataSegment),數(shù)據(jù)段寄存器中存放數(shù)據(jù)段起始地址的高16位。SS(StackSegment),堆棧段寄存器中存放堆棧段起始地址的高16位ES(ExtendedSegment),擴展段寄存器中存放擴展數(shù)據(jù)段起始地址的高16位。§3.2

8086/8088微處理器20位地址加法器一個存儲單元具有兩種地址屬性:物理地址和邏輯地址。物理地址8086/8088:20根地址線,可尋址220(1MB)個存儲單元CPU送到AB上的20位地址稱為物理地址

8086/8088存儲空間內(nèi)部暫存器

IP

ES

SS

DS

CS輸入/輸出控制電路外部總線∑地址加法器指令隊列總線接口部件(BIU)20位8位16位123456物理地址..60000H60001H60002H60003H60004H...存儲器的操作完全基于物理地址。8088/8086的地址總線寬度為20位,所以訪問內(nèi)存時必須指定一個20位的地址。問題:8088/8086的內(nèi)部總線和內(nèi)部寄存器均為16位,如何指定20位地址?解決:存儲器分段39HF0H00H12H§3.2

8086/8088微處理器8086/8088存儲空間

存儲器分段低地址高地址段基址段基址段基址段基址最大64KB,最小16B段i-1段i段i+1把內(nèi)存分為若干個不大于64KB的段,則訪問時只要指定16位的段基址(段號)和16位的段內(nèi)偏移量即可。§3.2

8086/8088微處理器8086/8088存儲空間§3.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)8086對邏輯段的要求是:只能從模16地址開始一個段,即段地址低4位均為0,為xxxx0H形式;省略最低四位0,即可用16位的段寄存器存儲。每段最大不超過64KB。8086對每個段不要求必須是64KB,不要求各段之間完全分開、即可以重疊。1MB空間最多能分成多少個段?1MB空間最少能分成多少個段?§3.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)1MB空間最多能分成多少個邏輯段? 每隔16個存儲單元就可以開始一個段,所以1MB最多可以有:220÷16=216=64K個段1MB空間最少能分成多少個邏輯段? 每隔64K個存儲單元開始一個段,所以1MB最少可以有:220÷216=16

個段§3.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)邏輯地址由兩個16位數(shù)構(gòu)成,其形式為:段的起始地址:段內(nèi)的偏移地址(16位段地址):(16位偏移量)分隔符物理地址14700H邏輯地址1460H:100H地址加法器

將16位的邏輯地址轉(zhuǎn)換為20位的物理地址,具體操作過程為:先將段寄存器提供的16位段地址左移四位,低位補0,恢復(fù)為20位地址,然后與由各種尋址方式提供的16位偏移地址相加,即得到20位的物理地址?!?.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)物理地址:20位邏輯地址:段基址(段寄存器的內(nèi)容)16位偏移地址(字節(jié)距離)16位段基址16位偏移地址16位物理地址20位0000+§3.28086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)3、控制寄存器控制寄存器:IP、FLAGSIP:指令指針寄存器,其內(nèi)容為下一條要執(zhí)行的指令的偏移地址FLAGS:標(biāo)志寄存器(狀態(tài)/控制標(biāo)志)16位寄存器,只用其中的9位,對應(yīng)9個標(biāo)志狀態(tài)標(biāo)志:存放運算結(jié)果的特征(6個:CF,SF,AF,PF,OF,ZF)控制標(biāo)志:控制某些特殊操作(3個:IF,TF,DF)§3.28086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)

CF(CarrvFlag):進位標(biāo)志位。最高位有進位或借位時,CF=1。

PF(ParityFlag):奇偶校驗標(biāo)志位

運算結(jié)果低8位中有偶數(shù)個“1”時,PF=1;

有奇數(shù)個“1”時,PF=0。

AF(AuxiliaryFlag):輔助進位標(biāo)志位。低字節(jié)的低4位向高4位進位或借位時,AF=1。(BCD數(shù)運算)

ZF(ZeroFlag):全零標(biāo)志位。運算結(jié)果為0時,ZF=1,否則ZF=0。

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

OF(OverflowFlag):溢出標(biāo)志位。運算過程中產(chǎn)生溢出時,OF=1。

對帶符號數(shù),字節(jié)運算結(jié)果的范圍為-128~+127,字運算結(jié)果的范圍為-32768~+32767,超過此范圍為溢出?!?.28086/8088微處理器二、8086/8088寄存器結(jié)構(gòu)

TF(TrapFlag):單步標(biāo)志位。TF=1時,則每執(zhí)行完一條指令,就自動產(chǎn)生一次內(nèi)部中斷,使用戶能逐條跟蹤程序進行調(diào)試。IF(InterruptFlag):中斷標(biāo)志位IF=1時,允許CPU響應(yīng)可屏蔽中斷;

IF=0時,即使外部設(shè)備有中斷申請,CPU也不響應(yīng)。

DF(DirectionFlag):方向標(biāo)志位??刂拼僮髦械刂分羔樧兓较?,DF=0,地址指針自動增量,即由低地址向高地址進行串操作;

DF=1,地址指針自動減量,即由高地址向低地址進行串操作。同時,能夠反映除符號位外的數(shù)值部分最高位的進位狀態(tài)。是指運算結(jié)果的最高位向更高位的進位,用來判斷無符號數(shù)運算結(jié)果是否超出了計算機所能表示的最大無符號數(shù)的范圍。

進位:是指帶符號數(shù)的補碼運算溢出,用來判斷帶符號數(shù)補碼運算結(jié)果是否超出了補碼所能表示的范圍。

溢出:溢出及其判斷方法CF—符號位進位狀態(tài)當(dāng)符號位向前有進位時,CF=1否則,CF=0;

當(dāng)該位向前有進位時,DF=1否則,DF=0。

DF—數(shù)值部分最高位的進位狀態(tài)OF=1,說明結(jié)果溢出;OF=0,則結(jié)果未溢出;

四、8086/8088引腳及其功能§3.28086/8088微處理器說明:1、符號/,(),*2、引腳號12345678910111213141516171819204039383736353433323130292827262524232221

GND

AD14AD13AD12AD11AD10AD9AD8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCCAD15AD16/S3AD17/S4AD18/S5AD19/S6BHE*/S7MN/MX*RD*HOLD(RQ*/GT0*)HLDA(RQ1*/GT1*)WR*(LOCK*)M/IO*(S2*

)DT/R*(S1*

)DEN*(S0*

)ALE(QS0)INTA*(QS1)TEST*READYRESET8086外部特性表現(xiàn)在其引腳信號上,要特別注意:引腳功能——指引腳信號的定義、作用;通常采用英文單詞或其縮寫表示信號流向——輸出?輸入?雙向?有效方式——高/低電平;上升/下降沿有效(觸發(fā))三態(tài)能力——低電平、高、高阻

就是從端點量去,對電源端呈現(xiàn)非常高的阻抗值,這時流經(jīng)的電流非常小,可判定為斷路(CPU不再控制該引腳)四、8086/8088引腳及其功能§3.28086/8088微處理器§3.28086/8088微處理器四、8086/8088引腳及其功能1.8086/8088CPU芯片:包括16條數(shù)據(jù)線、20條地址線(低16位和數(shù)據(jù)線復(fù)用)、17根控制線、電源和地線。

概述2.8086/8088的工作模式:最小模式(單機系統(tǒng)):系統(tǒng)中所需要的控制信號全部由8086直接提供;最大模式(多處理機系統(tǒng)):系統(tǒng)中所需要的控制信號由總線控制器8288提供。24~31腳的8條引腳在兩種工作模式中具有不同的功能。8088外形四、8086/8088引腳及其功能§3.28086/8088微處理器引腳信號的表示方法8086/8088的兩種組態(tài)模式最小組態(tài)模式構(gòu)成小規(guī)模的應(yīng)用系統(tǒng)8088本身提供所有的系統(tǒng)總線信號最大組態(tài)模式構(gòu)成較大規(guī)模的應(yīng)用系統(tǒng),例如可以接入數(shù)值協(xié)處理器8087,或構(gòu)成多CPU系統(tǒng);8088和總線控制器8288共同形成系統(tǒng)總線信號多CPU系統(tǒng)還用到輸入輸出協(xié)處理器8089和總線仲裁器8289兩種組態(tài)構(gòu)成兩種不同規(guī)模的應(yīng)用系統(tǒng)33腳:MN/MX§3.28086/8088微處理器(Minimum/Maximum)最小組態(tài)的引腳信號數(shù)據(jù)和地址引腳讀寫控制引腳中斷請求和響應(yīng)引腳總線請求和響應(yīng)引腳其它引腳 §3.28086/8088微處理器四、8086引腳及其功能1.數(shù)據(jù)和地址引腳AD15~AD0(Address/Data)地址/數(shù)據(jù)分時復(fù)用引腳,雙向、三態(tài)在訪問存儲器或外設(shè)的總線操作周期中,這些引腳在第一個時鐘周期輸出存儲器或I/O端口的低16位地址A15~A0其他時間用于傳送16位數(shù)據(jù)D15~D0

§3.28086/8088微處理器最小組態(tài)的引腳信號A19/S6~A16/S3(Address/Status)地址/狀態(tài)分時復(fù)用引腳,輸出、三態(tài)這些引腳在訪問存儲器的第一個時鐘周期輸出高4位地址A19~A16在訪問外設(shè)的第一個時鐘周期全部輸出低電平無效其他時間輸出狀態(tài)信號S6~S31.數(shù)據(jù)和地址引腳(續(xù))§3.28086/8088微處理器最小組態(tài)的引腳信號S6=0,表明8086當(dāng)前連在總線上;

S5=0,禁止一切可屏蔽中斷;

S5=1,允許可屏蔽中斷;

S4S3:指示當(dāng)前正在使用哪一個段寄存器?ALE(AddressLatchEnable)地址鎖存允許,輸出、三態(tài)、高電平有效ALE引腳高有效時,表示復(fù)用引腳:AD15~AD0和A19/S6~A16/S3正在傳送地址信息由于地址信息在這些復(fù)用引腳上出現(xiàn)的時間很短暫,所以系統(tǒng)可以利用ALE引腳將地址鎖存起來2.讀寫控制引腳§3.28086/8088微處理器最小組態(tài)的引腳信號IO/M*(InputandOutput/Memory)I/O或存儲器訪問,輸出、三態(tài)該引腳輸出高電平時,表示CPU將訪問I/O端口,這時地址總線A15~A0提供16位I/O口地址該引腳輸出低電平時,表示CPU將訪問存儲器,這時地址總線A19~A0提供20位存儲器地址2.讀寫控制引腳(續(xù)1)最小組態(tài)的引腳信號§3.28086/8088微處理器WR*(Write)寫控制,輸出、三態(tài)、低電平有效有效時,表示CPU正在寫出數(shù)據(jù)給存儲器或I/O端口RD*(Read)讀控制,輸出、三態(tài)、低電平有效有效時,表示CPU正在從存儲器或I/O端口讀入數(shù)據(jù)2.讀寫控制引腳(續(xù)2)最小組態(tài)的引腳信號§3.28086/8088微處理器IO/M*、WR*和RD*是最基本的控制信號組合后,控制4種基本的總線周期總線周期IO/M*WR*RD*存儲器讀低高低存儲器寫低低高I/O讀高高低I/O寫高低高2.讀寫控制引腳(續(xù)3)最小組態(tài)的引腳信號§3.28086/8088微處理器READY

存儲器或I/O口就緒,輸入、高電平有效在總線操作周期中,8086CPU會在第3個時鐘周期的前沿測試該引腳

如果測到高有效,CPU直接進入第4個時鐘周期

如果測到無效,CPU將插入等待周期TwCPU在等待周期中仍然要監(jiān)測READY信號,有效則進入第4個時鐘周期,否則繼續(xù)插入等待周期Tw。2.讀寫控制引腳(續(xù)4)最小組態(tài)的引腳信號§3.28086/8088微處理器總線周期DEN*(DataEnable)數(shù)據(jù)允許,輸出、三態(tài)、低電平有效有效時,表示當(dāng)前數(shù)據(jù)總線上正在傳送數(shù)據(jù),可利用他來控制對數(shù)據(jù)總線的驅(qū)動DT/R*(DataTransmit/Receive)數(shù)據(jù)發(fā)送/接收,輸出、三態(tài)該信號表明當(dāng)前總線上數(shù)據(jù)的流向高電平時數(shù)據(jù)自CPU輸出(發(fā)送)低電平時數(shù)據(jù)輸入CPU(接收)2.讀寫控制引腳(續(xù)5)最小組態(tài)的引腳信號§3.28086/8088微處理器BHE*/S7(BusHighEnable/Status),8088沒有高8位數(shù)據(jù)總線允許/狀態(tài)信號。三態(tài)、輸出、低電平有效16位數(shù)據(jù)傳送時,在T1狀態(tài),用BHE*指出高8位數(shù)據(jù)總線上數(shù)據(jù)有效,用AD0地址線指出低8位數(shù)據(jù)線上數(shù)據(jù)有效。見P44表3.5在T2-T4狀態(tài),S7輸出狀態(tài)信息(在8086芯片設(shè)計中,S7末賦于實際意義,作為備用),被置成高阻狀態(tài)。2.讀寫控制引腳(續(xù)6)最小組態(tài)的引腳信號§3.28086/8088微處理器表3.5BHE與地址引腳A0編碼的含義A0數(shù)據(jù)總線的使用情況0011010116位字傳送(偶地址開始的兩個存儲器單元的內(nèi)容)在數(shù)據(jù)總線高8位(D15D8)和奇地址單元間進行字節(jié)傳送在數(shù)據(jù)總線低8位(D7D0)和偶地址單元間進行字節(jié)傳送無效INTR(InterruptRequest)可屏蔽中斷請求,輸入、高電平有效有效時,表示請求設(shè)備向CPU申請可屏蔽中斷若IF=1,當(dāng)前指令執(zhí)行完畢后立即響應(yīng)中斷,轉(zhuǎn)去執(zhí)行相應(yīng)中斷服務(wù)程序若IF=0,?可通過關(guān)中斷指令CLI清除標(biāo)志寄存器中的IF標(biāo)志、從而對中斷請求進行屏蔽3.中斷請求和響應(yīng)引腳最小組態(tài)的引腳信號§3.28086/8088微處理器INTA*(InterruptAcknowledge)可屏蔽中斷響應(yīng),輸出、低電平有效有效時,表示來自INTR引腳的中斷請求已被CPU響應(yīng),CPU進入中斷響應(yīng)周期INTA*實際上發(fā)出兩個連續(xù)的負脈沖信號,第一個負脈沖通知外設(shè)接口,它發(fā)出的中斷請求已被允許;外設(shè)接口接到第2個負脈沖后,將中斷類型號放到數(shù)據(jù)總線上,以便CPU根據(jù)中斷類型號到內(nèi)存的中斷向量表中找出對應(yīng)中斷的中斷服務(wù)程序入口地址,從而轉(zhuǎn)去執(zhí)行中斷服務(wù)程序。3.中斷請求和響應(yīng)引腳(續(xù)1)最小組態(tài)的引腳信號§3.28086/8088微處理器NMI(Non-MaskableInterrupt)不可屏蔽中斷請求,輸入、上升沿有效有效時,表示外界向CPU申請不可屏蔽中斷該請求的優(yōu)先級別高于INTR,并且不能在CPU內(nèi)被屏蔽當(dāng)系統(tǒng)發(fā)生緊急情況時,可通過他向CPU申請不可屏蔽中斷服務(wù)主機與外設(shè)進行數(shù)據(jù)交換通常采用可屏蔽中斷不可屏蔽中斷通常用于處理掉電等系統(tǒng)故障3.中斷請求和響應(yīng)引腳(續(xù)2)最小組態(tài)的引腳信號§3.28086/8088微處理器HOLD總線保持(即總線請求),輸入、高電平有效有效時,表示總線請求設(shè)備向CPU申請占有總線該信號從有效回到無效時,表示總線請求設(shè)備對總線的使用已經(jīng)結(jié)束,通知CPU收回對總線的控制權(quán)DMA控制器等主控設(shè)備通過HOLD申請占用系統(tǒng)總線(通常由CPU控制)4.總線請求和響應(yīng)引腳最小組態(tài)的引腳信號§3.28086/8088微處理器HLDA(HOLDAcknowledge)總線保持響應(yīng)(即總線響應(yīng)),輸出、高電平有效有效時,表示CPU已響應(yīng)總線請求并已將總線釋放此時CPU的地址總線、數(shù)據(jù)總線及具有三態(tài)輸出能力的控制總線將全面呈現(xiàn)高阻,使總線請求設(shè)備可以順利接管總線待到總線請求信號HOLD無效,總線響應(yīng)信號HLDA也轉(zhuǎn)為無效,CPU重新獲得總線控制權(quán)4.總線請求和響應(yīng)引腳(續(xù)1)最小組態(tài)的引腳信號§3.28086/8088微處理器RESET復(fù)位請求,輸入、高電平有效該信號有效,將使CPU回到其初始狀態(tài);當(dāng)他再度返回?zé)o效時,CPU將重新開始工作8086復(fù)位后CS=FFFFH、IP=0000H,所以程序入口在物理地址FFFF0H5.其它引腳最小組態(tài)的引腳信號§3.28086/8088微處理器表3.4復(fù)位后內(nèi)部寄存器的狀態(tài)

內(nèi)部寄存器狀態(tài)標(biāo)志寄存器IPCSDSSSES指令隊列緩沖器其余寄存器0000H0000HFFFFH0000H0000H0000H空0000HCLK(Clock)時鐘輸入系統(tǒng)通過該引腳給CPU提供內(nèi)部定時信號。8086的標(biāo)準(zhǔn)工作時鐘為5MHzIBMPC/XT機的8088采用了4.77MHz的時鐘,其周期約為210ns5.其它引腳(續(xù)1)最小組態(tài)的引腳信號§3.28086/8088微處理器Vcc電源輸入,向CPU提供+5V電源GND接地,向CPU提供參考地電平5.其它引腳(續(xù)2)最小組態(tài)的引腳信號§3.28086/8088微處理器TEST*測試,輸入、低電平有效該引腳與WAIT指令配合使用當(dāng)CPU執(zhí)行WAIT指令時,每隔5個時鐘周期對該引腳進行測試:如果無效,則程序踏步并繼續(xù)測試;如果有效,則程序恢復(fù)運行也就是說,WAIT指令使CPU產(chǎn)生等待,直到引腳有效為止在使用協(xié)處理器8087時,通過引腳和WAIT指令,可使8086與8087的操作保持同步5.其它引腳(續(xù)3)最小組態(tài)的引腳信號§3.28086/8088微處理器CPU引腳是系統(tǒng)總線的基本信號可以分成三類信號:16位數(shù)據(jù)線:D0~D1520位地址線:A0~A19控制線:

ALE、IO/M*、WR*、RD*、READY

INTR、INTA*、NMI,HOLD、HLDA

RESET、CLK、Vcc、GND有問題!“引腳”小結(jié)§3.28086/8088微處理器提問之一:CPU引腳是如何與外部連接的呢?

解答:總線形成提問之二:CPU引腳是如何相互配合,實現(xiàn)總線操作、控制系統(tǒng)工作的呢?解答:總線時序(第3.3.3節(jié))“引腳”提問§3.28086/8088微處理器最小組態(tài)的總線形成§3.28086/8088微處理器(1)20位地址總線——采用3個三態(tài)透明鎖存器8282進行鎖存和驅(qū)動(2)16位數(shù)據(jù)總線——采用數(shù)據(jù)收發(fā)器8286進行驅(qū)動(3)系統(tǒng)控制信號——由8086引腳直接提供圖3.88086最小方式系統(tǒng)結(jié)構(gòu)BHEOET地址信息只在第一個時鐘周期出現(xiàn),過去就沒了。因此,必須將地址信息暫存起來,才能在總線周期的后續(xù)時鐘周期讀取存儲器或外設(shè)信息。鎖存器可當(dāng)此任。(1)地址總線形成——鎖存器8282采用3個8282進行鎖存和驅(qū)動Intel8282是三態(tài)、透明鎖存器Intel8282具有三態(tài)輸出的透明鎖存器TTL工作電平,8入8出STB

鎖存控制,高電平有效OE*

輸出允許每一位都是一個三態(tài)鎖存器,8個三態(tài)鎖存器的控制端連在一起Transistor-TransistorLogicstrobe,閘門outputenable*三態(tài)輸出:輸出控制信號有效時,允許數(shù)據(jù)輸出,DO端可以是高或低電平;無效時,不允許數(shù)據(jù)輸出,輸出呈高阻狀態(tài)透明?鎖存器的輸出能夠跟隨輸入端的變化而變化(STB端有效時)。8位雙向緩沖器,用來控制數(shù)據(jù)收發(fā)控制端連接在一起,低電平有效可以雙向?qū)ㄝ敵雠c輸入同相OE*=0,導(dǎo)通

T=1A→BT=0A←BOE*=1,不導(dǎo)通每一位都是一個雙向三態(tài)門,8位具有共同的控制端

Intel8286*(2)數(shù)據(jù)總線的形成—數(shù)據(jù)收發(fā)器8286圖3.88086最小方式系統(tǒng)結(jié)構(gòu)BHEOET系統(tǒng)總線信號AD7~AD0A15~A8A19/S6~A16/S3+5V8088ALE8282STB8282STB8282STB8286T-OEMN/-MXIO/-M-RD-WRDT/-R-DEN-OE-OE-OEA19~A16A15~A8A7~A0D7~D0IO/-M-RD-WR§3.28086/8088微處理器最大組態(tài)的總線形成⑴系統(tǒng)地址總線采用三態(tài)透明鎖存器8282鎖存⑵系統(tǒng)數(shù)據(jù)總線通過三態(tài)雙向緩沖器8286形成和驅(qū)動⑶系統(tǒng)控制總線主要由總線控制器8288形成MEMR*、MEMW*、IOR*、IOW*、INTA*最大組態(tài)的總線形成8086的數(shù)據(jù)/地址等引腳在最大組態(tài)與最小組態(tài)時相同有些控制信號不相同,主要是用于輸出操作編碼信號,由總線控制器8288譯碼產(chǎn)生系統(tǒng)控制信號:S2*、S1*、S0*——3個狀態(tài)信號LOCK*——總線封鎖信號QS1、QS0——指令隊列狀態(tài)信號RQ*/GT0*、RQ*/GT1*——2個總線請求/同意信號§3.28086/8088微處理器最大組態(tài)的引腳定義S2*、S1*、S0*的編碼意義S2*S1*S0*CPU的工作狀態(tài)

000中斷響應(yīng)

001

I/O讀

010

I/O寫

011暫停

100取指

101存儲器讀

110存儲器寫

111過渡狀態(tài)T3或Tw狀態(tài)檢測到ready信號為高電平時的短暫狀態(tài)§3.28086/8088微處理器最大組態(tài)的引腳定義當(dāng)LOCK*為低電平時,系統(tǒng)中其他總線主設(shè)備就不能獲得總線的控制權(quán)而占用總線。DMA(DirectMemoryAccess)期間,為高阻態(tài)。

LOCK*(Lock):引腳29,總線封鎖信號,輸出QS1、QS0(InstructionQueueStatus):引腳24、25,指令隊列狀態(tài)信號QS1QS0含義00110101無操作從指令隊列的第一字節(jié)中取走代碼隊列為空除第一字節(jié)外,還取走了后續(xù)字節(jié)中的代碼§3.28086/8088微處理器最大組態(tài)的引腳定義RQ*/GT1*、RQ*/GT0*(Request/Grant):引腳30、31,總線請求信號(輸入)/總線請求允許信號(輸出)??晒?086以外的2個總線主設(shè)備向8086發(fā)出使用總線的請求信號RQ(相當(dāng)于最小方式時的HOLD信號);8086在當(dāng)前總線周期結(jié)束后讓出總線,發(fā)出總線請求允許信號GT(相當(dāng)于最小方式的HLDA信號),此時,外部總線主設(shè)備便獲得了總線的控制權(quán);RQ/GT0比RQ/GT1的優(yōu)先級高。8288提供的其它控制信號MRDC*(MemoryReadCommand)MWTC*

(MemoryWriteCommand)IORC*(I/OReadCommand)IOWC*(I/OWriteCommand)INTAAMWC:ADVANCEDMEMORYWRITECOMMAND,提前存儲器寫,AMWC比MWTC約提前一個時鐘周期,功能一樣

AIOWC:提前IO寫§3.28086/8088微處理器最大組態(tài)的引腳定義內(nèi)容提要

80X86微處理器簡介

8086/8088微處理器

8086/8088存儲器和I/O組織§3.38086/8088存儲器和I/O組織8086/8088存儲空間存儲器是計算機存儲信息的地方。掌握數(shù)據(jù)存儲格式,以及存儲器的分段管理對以后的匯編程序設(shè)計非常重要你能區(qū)別寄存器、存儲器(主存)、外存(包括硬盤、光盤、磁帶等存儲介質(zhì))嗎?§3.38086/8088存儲器和I/O組織8086/8088存儲空間寄存器、內(nèi)存儲器和外存儲器的區(qū)別寄存器是微處理器(CPU)內(nèi)部暫存數(shù)據(jù)的存儲單元,以名稱表示,例如:AX,BX..….等存儲器也就是平時所說的主存,也叫內(nèi)存,可直接與CPU進行數(shù)據(jù)交換。主存利用地址區(qū)別外存主要指用來長久保存數(shù)據(jù)的外部存儲介質(zhì),常見的有硬盤、光盤、磁帶、U盤等。外存的數(shù)據(jù)只能通過主存間接地與CPU交換數(shù)據(jù)程序及其數(shù)據(jù)可以長久存放在外存,在運行需要時才進入主存§3.38086/8088存儲器和I/O組織8086/8088存儲空間數(shù)據(jù)的存儲格式計算機中表示信息的單位有:位(bit)、字節(jié)(byte)、字(word)、雙字(doubleword)等在存儲器中,信息的存儲單位是:字節(jié);即每個存儲單元的內(nèi)容是一個字節(jié)。最低有效位LSB(LeastSignificantBit):指數(shù)據(jù)的最低位,即D0位;最高有效位MSB(MostSignificantBit):指數(shù)據(jù)的最高位,對應(yīng)字節(jié)、字、雙字分別指D7、D15、D31位。雙字D0D31字D0D15字節(jié)D0D7LSBMSB§3.38086/8088存儲器和I/O組織8086/8088存儲空間存儲單元及其存儲內(nèi)容每個存儲單元都有一個編號——存儲器地址例如:右圖中,0002H單元存放有一個數(shù)據(jù)34H,表示為[0002H]=34H如何存儲一個字或雙字呢?00000H00001H00002H00003H00004H00005H34H12H56H78H00006HD7D0低地址小端方式§3.38086/8088存儲器和I/O組織8086/8088存儲空間00000H00001H00002H00003H00004H00005H34H12H56H78H00006HD7D0低地址多字節(jié)數(shù)據(jù)在存儲器中占據(jù)多個連續(xù)的存儲單元:存放時,低字節(jié)存于低地址,高字節(jié)存于高地址;多字節(jié)數(shù)據(jù)占據(jù)的地址空間用它的低地址來表示。2號“字”單元: [0002H]=1234H2號“雙字”單元: [0002H]=78561234H8086/8088處理器的“低對低、高對高”的存儲形式,被稱為“小端方式(littleendian)”。存儲器的分段管理邏輯地址的表示——段地址:偏移地址地址偏移量(xxxxH)段首(xxxx0H)低址段尾某邏輯段某尋址單元§3.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)段地址說明邏輯段在存儲器中的起始位置,為模16地址:xxxx0H,省略低4位后,可用1個16位數(shù)來表示,該地址可被存放在不同的段寄存器CS/SS/DS/ES中。偏移地址說明尋址單元距離段首的偏移量,因每段長度不超過64KB,所以偏移地址也可用1個16位數(shù)來表示。一個存儲單元可以擁有多個邏輯地址,但只可能擁有一個唯一的物理地址。邏輯地址 1460:100、1380:F00物理地址 14700H14700H§3.38086/8088存儲器和I/O組織

存儲的段結(jié)構(gòu)程序的指令序列必須安排在代碼段(CS);程序使用的堆棧一定在堆棧段(SS);程序中的數(shù)據(jù)默認是安排在數(shù)據(jù)段(DS),也經(jīng)常安排在附加段(ES),尤其是串操作的目的區(qū)必須是附加段。數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。

程序中如何指明數(shù)據(jù)所在的邏輯段呢?如何分配各個邏輯段?沒有指明時,一般的數(shù)據(jù)訪問在DS段;若使用BP訪問存儲器,則在SS段。各邏輯段容量小于或等于64KB,可相互獨立,也可重疊。各個邏輯段獨立的實例各個邏輯段重疊的實例例:已知CS=1055H,DS=250AH,ES=2EF0H,SS=8FF4H,

DS所指示的段有一操作數(shù),其偏移地址=0204H。1)畫出各段在內(nèi)存中的分布。

2)指出各段的物理起始地址。

3)該操作數(shù)的物理地址=?10550H250A0H2EF00H8FF40HCSSSDSES解:自己畫操作數(shù)的物理地址為:250AH×10H+0204H=252A4H存儲的段結(jié)構(gòu)§3.38086/8088存儲器和I/O組織§3.38086/8088存儲器和I/O組織8086存儲器的分體結(jié)構(gòu)實際上,8086的1MB存儲空間實際上分為兩個512KB的存儲體,又稱存儲庫,分別叫高位庫和低位庫?!?.38086/8088存儲器和I/O組織8086存儲器的分體結(jié)構(gòu)圖3.138086存儲器高低位庫的連接§3.38086/8088存儲器和I/O組織8086存儲器的分體結(jié)構(gòu)8086存儲器高低庫位選擇§3.38086/8088存儲器和I/O組織8086存儲器的分體結(jié)構(gòu)

分體結(jié)構(gòu)讀寫操作8086CPU訪問存儲器時,對于字節(jié)型數(shù)據(jù),無論它存放在偶地址的低位庫,還是奇地址的高位庫,均可通過一個總線周期完成數(shù)據(jù)的讀/寫操作。從偶地址讀一個字節(jié)從奇地址讀一個字節(jié)§3.38086/8088存儲器和I/O組織8086存儲器的分體結(jié)構(gòu)若字單元地址從偶地址開始,只需訪問一次存儲器(規(guī)則存放)從偶地址讀一個字若字單元地址從奇地址開始,需訪問兩次存儲器(不規(guī)則存放)從奇地址讀一個字字型數(shù)據(jù)盡量規(guī)則存放

8086/8088系統(tǒng)和外部設(shè)備之間是通過I/O接口電路來聯(lián)系的。每個I/O接口都有一個或幾個端口。在微機系統(tǒng)中每個端口分配一個地址號,稱為端口地址。一個端口通常為I/O接口電路內(nèi)部的一個寄存器或一組寄存器。8086/8088的I/O組織

8086/8088CPU用地址總線的低16位作為對8位I/O端口的尋址線,所以8086/8088系統(tǒng)可訪問的8位I/O端口有65536(64K)個。兩個編號相鄰的8位端口可以組成一個16位的端口。一個8位的I/O設(shè)備既可以連接在數(shù)據(jù)總線的高8位上,也可以連接到數(shù)據(jù)總線的低8位上。8086/8088的I/O組織需要說明的是,8086/8088CPU的I/O指令可以用16位的有效地址A15A0來尋址0000FFFFH共64K個端口,但IBMPC系統(tǒng)中只使用了A9A010位地址來作為I/O端口的尋址信號,因此,其I/O端口的地址僅為0003FFH共1K個。8086/8088的I/O組織§3.38086/8088存儲器和I/O組織

堆棧操作1.堆棧的定義堆棧是在存儲器中開辟一個區(qū)域,用來存放需要暫時保存的數(shù)據(jù)。2.堆棧段構(gòu)成及特點堆棧段由段定義語句在存儲器中定義的一個段,段基址由堆棧寄存器SS指定,棧頂由堆棧指針SP指定,SP指向當(dāng)前棧頂單元?!?.38086/8088存儲器和I/O組織

堆棧操作3.堆棧的工作方式及特點①工作方式:“先進后出”,指令為PUSH、POP,棧頂指針SP的變化由CPU自動管理。②操作特點:以字為單位進行操作,每訪問一次堆棧就能壓入/彈出一個字。③地址增長方式一般是向上增長:棧底設(shè)在存儲器的高地址區(qū),堆棧地址由高向低增長?!?.38086/8088存儲器和I/O組織

堆棧操作執(zhí)行PUSH指令時,CPU自動修改指針SP-2SP。使SP指向新棧頂,然后將低位數(shù)據(jù)壓入(SP)單元,高位數(shù)據(jù)壓入(SP+1)單元。當(dāng)執(zhí)行POP指令時,CPU先將當(dāng)前棧頂SP(低位數(shù)據(jù))和SP+1(高位數(shù)據(jù))中的內(nèi)容彈出,然后再自動修改指針,使SP+2SP,SP指向新棧頂?!咀⒁狻浚合冗M入的內(nèi)容要后彈出,PUSH和POP指令要成對?!?.38086/8088存儲器和I/O組織

堆棧操作【例】.假如當(dāng)前SS=C000H,SP=1000H,若AX=3322H,BX=1100H,CX=6655H,執(zhí)行指令PUSHAX,PUSHBX,再執(zhí)行指令POPCX,此時堆棧中內(nèi)容發(fā)生什么變化,AX,BX,CX中的內(nèi)容是什么?8086微處理器時序§3.38086/8088存儲器和I/O組織時序(Timing)描述各信號隨時間變化的規(guī)律及信號間相互關(guān)系??偩€時序描述總線操作中相關(guān)信號的時序;它由總線主控設(shè)備產(chǎn)生。總線時序決定了CPU控制總線期間,系統(tǒng)各部件應(yīng)遵守的定時規(guī)則。總線操作是指CPU通過總線對外進行的各種操作什么是總線操作?8086微處理器時序§3.38086/8088存儲器和I/O組織總線周期(BusCycle)是指CPU通過總線與外部(存儲器或I/O端口)進行一次數(shù)據(jù)交換的過程,即完成一次總線操作的時間;指令周期?

是指一條指令經(jīng)取指、譯碼、操作數(shù)讀寫直到指令完成所需要的時間。通常需要一個或多個總線周期:

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論