第二章微處理器_第1頁
第二章微處理器_第2頁
第二章微處理器_第3頁
第二章微處理器_第4頁
第二章微處理器_第5頁
已閱讀5頁,還剩130頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第2章微處理器2023/2/6>>微機(jī)原理<<2本章要點(diǎn)8086微處理器的內(nèi)部結(jié)構(gòu)、編程結(jié)構(gòu)、引腳及功能8086/8088的編程結(jié)構(gòu)以及存儲器組織80286、80386、80486及Pentium系列微處理器主要特點(diǎn)2023/2/6>>微機(jī)原理<<32.18086/8088微處理器

2.1.1簡介8086

CPU的一般性能特點(diǎn)如下。(1)16位的內(nèi)部結(jié)構(gòu),16位雙向數(shù)據(jù)信(2)20位地址信號線,可尋址1MB存儲單(3)較強(qiáng)的指令系統(tǒng)。(4)利用第16位地址總線進(jìn)行I/O端口尋址,可尋址64K個I/O端口。(5)中斷功能強(qiáng),可處理內(nèi)部軟件中斷和外部中斷,中斷源可達(dá)256個。(6)單一的+5V電源,單相時(shí)鐘頻率5MHz。2023/2/6>>微機(jī)原理<<42.18086/8088微處理器

2.1.2內(nèi)部結(jié)構(gòu)8086CPU總線接口部件BIU執(zhí)行部件EU2023/2/6>>微機(jī)原理<<52.18086/8088微處理器

2023/2/6>>微機(jī)原理<<62.18086/8088微處理器

1.執(zhí)行部件EU

執(zhí)行部件EU負(fù)責(zé)指令的譯碼和執(zhí)行,包括ALU(算術(shù)邏輯單元)、寄存器組、EU控制器等,主要進(jìn)行8位及16位的二進(jìn)制運(yùn)算,其中ALU完成8位或16位的二進(jìn)制運(yùn)算,16位暫存寄存器可暫存參加運(yùn)算的操作數(shù),EU控制器進(jìn)行時(shí)序控制和取指令控制,4個通用寄存器(AX、BX、CX、DX)4個專用寄存器(基址指針寄存器BP、堆棧指針寄存器SP、源變址寄存器SI、目的變址寄存器DI)分別用來存放一些數(shù)據(jù)或地址信息標(biāo)志寄存器為PSW存放ALU的運(yùn)算結(jié)果特征。2023/2/6>>微機(jī)原理<<72.18086/8088微處理器

2.總線接口部件BIU1)功能

負(fù)責(zé)與存儲器及I/O接口之間的數(shù)據(jù)傳送操作。具體來看,就是完成取指令,指令排隊(duì),配合執(zhí)行部件的動作,從內(nèi)存單元或I/O端口取操作數(shù),或者將操作結(jié)果送內(nèi)存單元或者I/O端口。2)組成段寄存器:16位寄存器(DS、CS、ES、SS、CS為代碼段寄存器;DS為數(shù)據(jù)段寄存器;ES為附加段寄存器;SS為堆棧段寄存器。16位指令指針寄存器IP:用來指向下一條要取出的指令代碼。2023/2/6>>微機(jī)原理<<82.18086/8088微處理器

20位地址加法器:將16位邏輯地址變換成存儲器讀/寫所需的20位物理地址。6字節(jié)指令隊(duì)列緩沖器:預(yù)存6字節(jié)的指令代碼??偩€控制邏輯:發(fā)出總線控制信號。實(shí)現(xiàn)存儲器讀/寫控制和I/O讀/寫控制。它將8086CPU的內(nèi)部總線與外部總線相連,是8086CPU與外部打交道不可缺少的路徑。3)特點(diǎn)8086CPU的指令隊(duì)列大小為6個字節(jié),在執(zhí)行指令的同時(shí),可從內(nèi)存中取出后續(xù)的指令代碼,放在指令隊(duì)列中,可以提高CPU的工作效率。2023/2/6>>微機(jī)原理<<92.18086/8088微處理器

3.工作過程1)首先在代碼段寄存器CS中的16位段基地址的最低位后面補(bǔ)4個0,加上指令指針寄存器IP中的16位偏移地址,通過地址加法器產(chǎn)生20位物理地址。2)EU從指令隊(duì)列中取走指令,經(jīng)指令譯碼后,向BIU申請從存儲器或I/O端口讀寫操作數(shù)。3)指令指針寄存器IP由BIU自動修改,指向下一條指令在現(xiàn)行代碼段內(nèi)的偏移地址。

由于EU和BIU這兩個功能部件能相互獨(dú)立地工作,在大多數(shù)情況下,取指令所需的時(shí)間“消失”了(隱含在上一指令的執(zhí)行之中),大大減少等待取指令所需的時(shí)間,提高了微處理器的利用率和整個系統(tǒng)的執(zhí)行速度。2023/2/6>>微機(jī)原理<<112.18086/8088微處理器

2.1.3編程結(jié)構(gòu)8086CPU中有14個16位的寄存器,按用途分為四類1.數(shù)據(jù)寄存器組2023/2/6>>微機(jī)原理<<122.18086/8088微處理器

2.段寄存器組3.其它寄存器組2023/2/6>>微機(jī)原理<<132.18086/8088微處理器4.指針和變址寄存器5.標(biāo)志寄存器通用寄存器分為數(shù)據(jù)寄存器與指針和變址寄存器兩組。數(shù)據(jù)寄存器包括4個16位的寄存器AX、BX、CX和DX,一般用來存放16位數(shù)據(jù),故稱為數(shù)據(jù)寄存器。其中的每一個又可根據(jù)需要將高8位和低8位分成獨(dú)立的兩個8位寄存器來使用,即AH、BH、CH、DH和AL、BL、CL、DL兩組,用于存放8位數(shù)據(jù),它們均可獨(dú)立尋址、獨(dú)立使用。指針和變址寄存器包括指針寄存器SP、BP和變址寄存器SI、DI,都是16位寄存器,,一般用來存放地址的偏移量。這8個16位通用寄存器都具有通用性,從而提高了指令系統(tǒng)的靈活性。但在有些指令中,這些通用寄存器還各自有特定的用法.表:通用寄存器的特定用法寄存器操作寄存器操作AX字乘,字除,字I/OCL變量移位,循環(huán)移位AL字節(jié)乘,字節(jié)除,字節(jié)I/O,查表轉(zhuǎn)換,十進(jìn)制運(yùn)算DX字乘,字除,間接I/OAH字節(jié)乘,字節(jié)除SP堆棧操作BX查表轉(zhuǎn)換SI數(shù)據(jù)串操作指令CX數(shù)據(jù)串操作指令,循環(huán)指令DI數(shù)據(jù)串操作指令(1)數(shù)據(jù)寄存器 累加器AX(Accumulator)基址寄存器BX(Base)計(jì)數(shù)寄存器CX(Count)數(shù)據(jù)寄存器DX(Data)這四個16位寄存器可分為高8位(AH、BH、CH和DH)與低8位(AL、BL、CL和DL)可分別尋址、獨(dú)立操作。

16位和8位可以拆開或組合。例如:AX=1234H(16位)AH=12H(高8位),AL=34H(低8位)例如:BL=78H,BH=56H(8位)BX=5678H(16位)注意:不允許兩個不同的寄存器拆開或組合,例如:AH和BL直接組合。MOVAL,58HMOVAX,1234H;AL=34H,58H被覆蓋(2)指針寄存器和變址寄存器:(16位) 堆棧指針寄存器SP(StackPointer)基址指針寄存器BP(BasePointer)源變址寄存器SI(SourceIndex)目的變址寄存器DI(DestinationIndex)SP用來確定欲讀寫堆棧的地址,BP用來存放在現(xiàn)行堆棧段的一個數(shù)據(jù)區(qū)的“基地址”。SI、DI用于變址操作,存放變址地址。注意:以上4個16位的寄存器不能拆成8位使用。通用寄存器的隱含用法:隱含用法:在一些指令中只能使用一個特定的寄存器,其它寄存器不能使用。a、AX、AL:16位、8位累加器AX在16位乘除指令中用作累加器,運(yùn)算前存放被乘數(shù)或被除數(shù),運(yùn)算后存放結(jié)果。AL在8位乘除指令中用作累加器,運(yùn)算前存放被乘數(shù)或被除數(shù),運(yùn)算后存放結(jié)果。AX在16位I/O指令中作為數(shù)據(jù)寄存器用來傳輸16位數(shù)據(jù)。AL在8位I/O指令中作為數(shù)據(jù)寄存器用來傳輸8位數(shù)據(jù)。AL還在BCD、ASCII碼數(shù)據(jù)運(yùn)算時(shí)用作累加器。例如:AL*BL→AXAX/BL→AL(商),AH(余)INAL,端口;OUT端口,AXb、BX----在間址尋址中用作間址寄存器,在基址尋址中用作基址寄存器。例如:MOVAX,[BX];將BX指示的內(nèi)存單元中的內(nèi)容傳送至AX寄存器中。(寄存器間址尋址)例如:MOVAX,[BX+1000H];將BX+1000H指示的內(nèi)存單元中的內(nèi)容傳送至AX寄存器中。(基址尋址)

c、CX----在循環(huán)操作中用作循環(huán)次數(shù)計(jì)數(shù)器。例如:MOVCX,100;循環(huán)次數(shù)100送CX寄存器L:………………LOOPL;CX-1→CXCX≠0轉(zhuǎn)L,繼續(xù)循環(huán)CX=0結(jié)束循環(huán)d、CL----在循環(huán)移位指令中用作移位次數(shù)計(jì)數(shù)器。例如:SHLAX,CL;對AX中的內(nèi)容左移位CL位。

e、DX----在16位乘運(yùn)算得到32位積時(shí)存放高16位積,在32位被除數(shù)中存放高16位。例如:AX*BX→DX,AX(32位)DX,AX(32位)/BX→AX(16位商),DX(16位余)DX在I/O指令中用作間址寄存器例如:MOVDX,2000HINAL,DX;將2000H端口中的內(nèi)容輸入到AL寄存器中。

f、SP-----用作堆棧棧頂指示器,指示堆棧棧頂單元的地址,專用于堆棧的棧頂?shù)刂?。g、BP-----用作堆棧數(shù)據(jù)段的基址寄存器,也稱為堆棧的附加指針寄存器。h、SI、DI----可用在寄存器間址尋址的間址寄存器(8086共有BX、SI、DI三個)在變址尋址中用作變址寄存器(SI、DI二個)在數(shù)據(jù)串指令中SI用作源串間址寄存器,DI用作目的串間址寄存器。

2、指令指針I(yè)P和標(biāo)志寄存器FR指令指針I(yè)P(InstructionPointer) 指向當(dāng)前需要取出的指令字節(jié)存放的地址。IP指向的是指令地址的段內(nèi)地址偏移量. 程序員不能對IP進(jìn)行存取操作,程序中的轉(zhuǎn)移指令、返回指令以及中斷處理能對IP進(jìn)行操作。IP類似與PC寄存器,管理程序的執(zhí)行順序。3、標(biāo)志寄存器16位寄存器,只用了9位,有7位未用。D15D0

OFDFIFTFSFZFAFPFCF進(jìn)借位標(biāo)志奇偶標(biāo)志半進(jìn)借位標(biāo)志零標(biāo)志符號標(biāo)志單步中斷中斷允許方向標(biāo)志溢出標(biāo)志1-有進(jìn)、借位0-無進(jìn)、借位1-低8位有偶數(shù)個10-低8位有奇數(shù)個11-低4位向高4位有進(jìn)、借位0-低4位向高4位無進(jìn)、借位1-結(jié)果為00-結(jié)果不為0標(biāo)志寄存器FR(FlagRegister)

定義了9位6位狀態(tài)位 CF、AF、ZF、SF、OF、PF3位控制位IF、DF、TF中斷允許增量單步結(jié)果有進(jìn)/借位結(jié)果有半進(jìn)/借位結(jié)果為零1結(jié)果為負(fù)結(jié)果溢出奇/偶(1)狀態(tài)位:CF、PF、AF、ZF、SF、0F進(jìn)位標(biāo)志CF----反映運(yùn)算結(jié)果向更高位是否有進(jìn)/借位加減運(yùn)算后有進(jìn)位/借位時(shí)CF=1,否則CF=0對于8位運(yùn)算,CF=D7CY(加)CF=D7CY(減--求機(jī)器負(fù)數(shù)后的補(bǔ)碼加)對于16位運(yùn)算:CF=D15CY(加)CF=D15CY(減--求機(jī)器負(fù)數(shù)后的補(bǔ)碼加)CF標(biāo)志的用途:用于運(yùn)算時(shí)的進(jìn)/借位。用于無符號數(shù)運(yùn)算后判定是否有溢出。用于移位操作時(shí)接收移出的信息位。CF標(biāo)志可在運(yùn)算后自動產(chǎn)生,也可以用指令直接設(shè)置。奇偶校驗(yàn)標(biāo)志PF:反映運(yùn)算結(jié)果中“1”的個數(shù)為奇或者為偶

運(yùn)算結(jié)果中“1”的個數(shù)為偶數(shù),PF=1運(yùn)算結(jié)果中“1”的個數(shù)為奇數(shù),PF=0PF=D7⊕D6⊕‥‥⊕D0-------8位PF標(biāo)志可用于數(shù)據(jù)傳送后的奇偶校驗(yàn)。輔助進(jìn)位標(biāo)志AF----反映運(yùn)算后的結(jié)果是否有半進(jìn)位/借位

8位:D7C------進(jìn)位/借位

D3CY--------半進(jìn)位/借位

16位:D15C------進(jìn)位/借位

D7CY--------半進(jìn)位/借位

8位時(shí)

AF=

D3CY

(加)

AF=D3CY

(減--求機(jī)器負(fù)數(shù)后的補(bǔ)碼加)

AF在BCD碼運(yùn)算(8位)時(shí)可用作十進(jìn)制調(diào)整的條件零標(biāo)志ZF-----反映運(yùn)算結(jié)果是否為零

結(jié)果為0,ZF=1 結(jié)果非0,ZF=08位:ZF=D7+D6+‥‥+D016位:ZF=D15+D14+‥‥+D0

ZF可用于判定二個數(shù)是否相等,相等的時(shí)候它們相減的結(jié)果為零。ZF還可用作計(jì)數(shù)器的計(jì)數(shù)次數(shù)是否減為0,當(dāng)減為0的時(shí)候表示計(jì)數(shù)到,例如:循環(huán)次數(shù)計(jì)數(shù)符號標(biāo)志SF:反映運(yùn)算結(jié)果是否為負(fù)運(yùn)算結(jié)果為正,SF=0

運(yùn)算結(jié)果為負(fù),SF=1SF=最高位8位時(shí)SF=D7

、16位時(shí)SF=D15

SF在有符號數(shù)運(yùn)算時(shí)才有意義。

SF也可在無符號數(shù)比較大小時(shí)判定兩個數(shù)的大小,A、B兩個數(shù)相減后結(jié)果SF=0,A>B,SF=1,A<BSF還在有符號數(shù)比較大小時(shí)與OF標(biāo)志一起判定兩個數(shù)的大小。溢出標(biāo)志OF:反映有符號數(shù)運(yùn)算后的結(jié)果是否有溢出運(yùn)算結(jié)果無溢出0F=0運(yùn)算結(jié)果有溢出0F=1OF=D7CY⊕D6CY(8位)OF=D15CY⊕D14CY(16位)有符號數(shù)運(yùn)算時(shí):正數(shù)加正數(shù)結(jié)果為正---無溢出;結(jié)果為負(fù)---有溢出負(fù)數(shù)加負(fù)數(shù)結(jié)果為負(fù)---無溢出;結(jié)果為正---有溢出正數(shù)加負(fù)數(shù)或負(fù)數(shù)加正數(shù)-------無溢出0F⊕SF可以用于判有符號數(shù)比較大小以上的6個狀態(tài)標(biāo)志在運(yùn)算指令運(yùn)算后由EU自動的設(shè)置在FR中(CF也可以直接用指令設(shè)置),常用作指令的轉(zhuǎn)移或執(zhí)行的控制條件,影響或控制后續(xù)指令的執(zhí)行,特別是CF、ZF、OF、SF。例如:JZL;運(yùn)算結(jié)果為0,轉(zhuǎn)L執(zhí)行JNZL;運(yùn)算結(jié)果非0,轉(zhuǎn)L執(zhí)行CPU的不同指令對狀態(tài)標(biāo)志的影響是不一樣的,有的指令執(zhí)行后全部影響6個標(biāo)志,有的影響部分,不影響的保持原態(tài),也有的一個都不影響,對不影響的指令執(zhí)行后就不可以使用條件轉(zhuǎn)移指令。(2)控制位方向標(biāo)志DF:用于串操作時(shí)設(shè)置串指針的修改方向

DF=0,增量修正(字節(jié)串:指針+1;字串:指針+2)

DF=1,減量修正(字節(jié)串:指針-1;字串:指針-2)串操作:串傳送、串比較、串搜索、從串中取、向串中存中斷允許標(biāo)志IF:設(shè)置是否允許CPU響應(yīng)外部的可屏蔽中斷請求INTR

IF=1(開中斷),允許CPU響應(yīng)外部的可屏蔽中斷請求INTRIF=0(關(guān)中斷),禁止CPU響應(yīng)外部的可屏蔽中斷請求INTR,此時(shí)用在CPU工作在不允許其他部件干擾CPU運(yùn)行的情況時(shí)。陷阱標(biāo)志TF:用于設(shè)置CPU運(yùn)行為單條執(zhí)行指令的方式TF=1:單步運(yùn)行,CPU每執(zhí)行一條指令后就自動進(jìn)入單步中斷,暫停執(zhí)行。用戶可單條跟蹤指令的執(zhí)行情況,用于單步調(diào)試程序。TF=0,連續(xù)正常的運(yùn)行程序。IF、OF可以用指令直接設(shè)置,TF可用指令間接的設(shè)置。以上設(shè)置后在CPU執(zhí)行指令時(shí)就可按照設(shè)置的方式執(zhí)行指令,所以特別注意不能設(shè)置出錯。4、段寄存器(SegmentRegister)內(nèi)存中通常存放著三類信息:(1)代碼(指令)—指示微處理器執(zhí)行何種操作;(2)數(shù)據(jù)(字符、數(shù)值)—程序處理的對象;(3)堆棧信息—被保存的返回地址和中間結(jié)果等。8086采用存儲器分段管理的方式,解決20位內(nèi)存地址和16位地址計(jì)算能力的矛盾。 8086程序把1M字節(jié)的存儲空間看成為一組存儲段,各段的功能由具體用途而定,分別為代碼段、堆棧段、數(shù)據(jù)段和附加段。段的起始地址由稱為“段寄存器”的4個16位寄存器決定,這4個段寄存器為:(1)代碼段寄存器CS(CodeSegment)指向當(dāng)前的代碼段,指令由此段中取出;(2)堆棧段寄存器SS(StackSegment)指向當(dāng)前的堆棧段,堆棧操作的對象就是該段中存儲單元的內(nèi)容;(3)數(shù)據(jù)段寄存器DS(DataSegment)指向當(dāng)前的數(shù)據(jù)段,通常用來存放程序變量(存儲器操作數(shù));(4)附加段寄存器ES(ExtraSegment)指向當(dāng)前的附加段,通常也用來存放數(shù)據(jù),以及一些專用指令的操作數(shù)。2023/2/6>>微機(jī)原理<<422.18086/8088微處理器2.1.4引腳和功能2023/2/6>>微機(jī)原理<<431)地址總線和數(shù)據(jù)總線(21條)AD15~AD0:分時(shí)復(fù)用的地址數(shù)據(jù)線,雙向,輸入/輸出,三態(tài),在總線周期T1狀態(tài),作為地址線,A15~A0輸出存儲器或I/O端口的地址信號。在T2~T4狀態(tài),D15~D0用作雙向數(shù)據(jù)線。當(dāng)CPU響應(yīng)中斷,以及系統(tǒng)“保持響應(yīng)”時(shí),AD15~AD0浮空置為高阻狀態(tài)。A19/S6~A16/S3:地址/狀態(tài)復(fù)用引腳,輸出,三態(tài)。在T1期間,作地址線A19~A16用。對存儲器進(jìn)行讀寫時(shí),高4位地址線由A19~A16給出。在T2~T4期間作為S6~S3狀態(tài)線用。S3與S4狀態(tài)線的特征如表2.2所示。S5用來表示當(dāng)前中斷允許標(biāo)志位IF的狀態(tài)。IF=1,允許響應(yīng)可屏蔽中斷請求;IF=0,禁止。S6在T2~T4期間狀態(tài)恒為“0”,以表示CPU當(dāng)前連在總線上。當(dāng)系統(tǒng)總線處于“保持響應(yīng)”時(shí),A19/S6~A16/S3引腳線均為高阻狀態(tài)。2023/2/6>>微機(jī)原理<<44BHE/S7:高8位允許/狀態(tài)復(fù)用引腳,輸出,三態(tài)。在T1狀態(tài)作用,該引腳為0時(shí),表示高8位有效。2)控制和狀態(tài)線(兩種工作模式下含義相同的線,10條)RD:讀選通,輸出,三態(tài)。READY:準(zhǔn)備就緒,輸入,高電平有效,表示存儲器或端口準(zhǔn)備就緒,允許進(jìn)行一次數(shù)據(jù)傳送。INTR(InterruptRequest):可屏蔽中斷請求,輸入,高電平有效。TEST:測試,輸入,低電平有效。NMI(Non-MaskableInterrupt):不可屏蔽中斷請求線,輸入,上升沿有效。RESET:系統(tǒng)復(fù)位,輸入,該信號必須保持4個時(shí)鐘周期的高電平才有效。CLK:時(shí)鐘;Vcc:+5V電源線;GND:接地;MN/MX:最小/最大模式選擇,輸入。2023/2/6>>微機(jī)原理<<45BHE/S7:高8位允許/狀態(tài)復(fù)用引腳,輸出,三態(tài)。在T1狀態(tài)作用,該引腳為0時(shí),表示高8位有效。3)控制和狀態(tài)線(在“最小模式”系統(tǒng),8條)M/IO:存儲器或輸入/輸出控制,輸出,三態(tài)WR:寫信號,輸出,三態(tài)。INTA:中斷響應(yīng),輸出,響應(yīng)INTR,用來對外設(shè)的中斷請求做出響應(yīng)。ALE(AddressLatchEnable):地址鎖存允許DT/R(DataTransmit/Receive):數(shù)據(jù)發(fā)送/接收,輸出,三態(tài)。DEN(DATAENABLE):數(shù)據(jù)允許信號輸出端,輸出,三態(tài)。HOLD(HoldRequest):總線保持請求,輸入。HLDA(HoldAcknowledge):總線保持響應(yīng),輸出。2023/2/6>>微機(jī)原理<<463)控制和狀態(tài)線(在“最大模式”系統(tǒng),8條)S2、S1、S0 :總線周期狀態(tài)信號,輸出。RQ/GT0、/GT1(Request/Grant):總線請求/允許,輸入/輸出,三態(tài)。LOCK:總線鎖定信號,輸出,三態(tài)。QS1、QS0:指令隊(duì)列狀態(tài),輸出。

8086CPU采用40腳的芯片。但8086地址線20條,數(shù)據(jù)線16條,還有若干控制線及電源線,它們合計(jì)大于40腳。解決的辦法:1、采用地址/數(shù)據(jù)引腳分時(shí)復(fù)用,一腳雙功能。2、按工作方式不同,一腳雙功能。8086CPU的時(shí)鐘頻率有三種:5MHZ(8086)8MHZ(8086-1)10MHZ(8086-2)8086根據(jù)所連的存儲器和外設(shè)規(guī)模的不同,使它們可以在兩種模式下工作:系統(tǒng)最小模式:為單處理器系統(tǒng),只有一8086/8088CPU。系統(tǒng)最大模式:為多處理器系統(tǒng),系統(tǒng)由主CPU8086/8088,協(xié)處理器8087,I/O處理器8089組成。

CPU時(shí)序概念:三種周期

*指令周期(InstructionCycle)執(zhí)行一條指令所需要的時(shí)間稱為指令周期,不同指令的指令周期是不等長的。

*總線周期(BusCycle)8086CPU與存儲器或I/O交換信息總是通過總線進(jìn)行的。CPU的每一個這種信息輸入、輸出過程需要的時(shí)間稱為總線周期,一個指令周期由一個或若干個總線周期組成。 *時(shí)鐘周期(ClockCycle)

執(zhí)行指令的一系列操作都是在時(shí)鐘脈沖CLK的統(tǒng)一控制下一步一步進(jìn)行的,時(shí)鐘脈沖的重復(fù)周期稱為時(shí)鐘周期,時(shí)鐘周期是CPU的時(shí)間基準(zhǔn),是CPU處理動作的最小單位由計(jì)算機(jī)的主頻決定,8086CPU的總線周期至少由4個時(shí)鐘周期組成,分別以T1、T2、T3和T4表示。TW是在時(shí)間不夠時(shí)插入的等待時(shí)鐘。指令周期:執(zhí)行一條指令所需要的時(shí)間??偩€周期(機(jī)器周期):CPU通過總線與存儲器或I/O接口進(jìn)行一次數(shù)據(jù)傳輸所需的時(shí)間。T狀態(tài)(時(shí)鐘周期):CPU處理動作的最小單位。T1T2T3TWT4總線周期

而當(dāng)系統(tǒng)規(guī)模較大時(shí),要求有較強(qiáng)的驅(qū)動能力,這樣就需要兩個獲兩個以上的微處理器。其中有一個是主處理器8086或8088,其它的處理器稱為協(xié)處理器,它們協(xié)助主處理器工作。例如8088便通過總線控制器8288來形成各種控制信號。如圖所示,為8086CPU和8088CPU的引腳信號圖。共有40條引腳線,這些引腳線用來輸出或接收各種信號:地址線,數(shù)據(jù)線,控制線和狀態(tài)線,電源線和定時(shí)線。

由于8088微處理器是一種準(zhǔn)16位機(jī)。其內(nèi)部結(jié)構(gòu)基本上與8086相同,其信號也與8086基本相同,只是有一些引腳的功能有所不同,在這里,我們將以8086為例,具體介紹一下最小模式下和最大模式下各位引腳功能,如出現(xiàn)功能不同的引腳再具體講解。

一、8086的引腳功能說明 8086的40條引腳信號按功能可分為4部分─地址總線、數(shù)據(jù)總線、控制總線以及其它(時(shí)鐘與電源)。引腳定義:01020304050607080910111213141516171819204039383736353433323130292827262524232221GNDAD14/A14AD13/A13AD12/A12AD11/A11AD10/A10AD9/A9AD8/A8AD7AD6AD5AD4AD3AD2AD1AD0NMIINTRCLKGNDVCC(5V)AD15/A15A16/S3A17/S4A18/S5A19/S6/BHE/S7HIGH(SSO)MN//MX/RDHOLD(/RQ//GT0)

HLDA(/RQ//GT1)/WR(/LOCK)M//IO(/S2)DT//R(/S1)/DEN(/S0)ALE(QS0)/INTA(QS1)/TESTREADYRESET8086/80881、地址總線和數(shù)據(jù)總線(1)數(shù)據(jù)總線DB:用于CPU與內(nèi)存或I/O接口之間交換信息。三態(tài),雙向。地址總線AB:用于CPU傳送內(nèi)存或I/O接口的地址信息。三態(tài),單向。(2)AD15-AD0:地址/數(shù)據(jù)分時(shí)復(fù)用引腳,雙向,三態(tài)。T1時(shí)刻:AD15-AD0功能是16位地址總線A15-A0,輸出訪問存儲器或I/O的地址信息。T2---T4時(shí)刻:AD15-AD0功能是16位數(shù)據(jù)總線D15-D0,與存儲器和I/O設(shè)備交換數(shù)據(jù)信息。地址/數(shù)據(jù)總線復(fù)用,分時(shí)工作,一腳雙功能。(3)A19/S6-A16/S3:地址/狀態(tài)總線分時(shí)復(fù)用,輸出,三態(tài)。T1時(shí)刻:A19/S6-A16/S3功能是A19-A164位地址總線,與A15-A0組成20位的地址輸出訪問存儲器或I/O。T2---T4時(shí)刻:A19/S6-A16/S3功能是S6-S34位CPU工作狀態(tài)輸出供外部測試用。S6:指示8086/8088當(dāng)前是否與總線相連,S6=0,表示8086/8088當(dāng)前與總線相連。S5:表明中斷允許標(biāo)志當(dāng)前的設(shè)置。S5=0,表示CPU中斷是關(guān)閉的,禁止一切可屏蔽中斷源的中斷請求;S5=1,表示CPU中斷是開放的,允許一切可屏蔽中斷源的中斷申請。S4、S3:指出當(dāng)前使用段寄存器的情況。見表2-10。

S4、S3組合所對應(yīng)的段寄存器情況

S4S3段寄存器

00當(dāng)前正在使用ES01當(dāng)前正在使用SS10當(dāng)前正在使用CS11

當(dāng)前正在使用DS(4)8086CPU訪問存儲器的時(shí)候用A19---A020位地址,最大可訪問1MB的存儲空間。

8086CPU訪問I/O端口的時(shí)候用A15---A016位地址,最大可訪問64KB的I/O空間,此時(shí)A19---A16無效為0000.(5)、/S7:高8位數(shù)據(jù)總線允許/狀態(tài)復(fù)用引腳。在總線周期的T1狀態(tài),此引腳輸出信號,表示高8位數(shù)據(jù)線D15-D8上的數(shù)據(jù)有效。實(shí)際應(yīng)用中用作存儲器高8位存儲體(奇地址體)的選擇信號,所以它也屬于地址信息。地址線A0用作存儲器低8位存儲體(偶地址體)的選擇信號在T2、T3、TW和T4狀態(tài)時(shí),此引腳輸出S7狀態(tài)信號。S7是一個無效的狀態(tài)信號。BHE、A0組合:BHEA0總線使用情況

00D15---D8,D7—D0(奇、偶地址體有效,傳送16位)

01D15---D8(奇地址體有效,傳送高8位)

10D7---D0(偶地址體有效,傳送低8位)

11無效(奇、偶地址體無效,不傳送1)8086雙重總線、分時(shí)復(fù)用,21條引腳:AD0~AD15,A16/S3~A19/S6,/S7。傳送了42個信號,大大減少了CPU的引腳。T1:A19-----A0,T2---T4:D15---D0,S6---S3,S7 2、控制總線—同工作方式有關(guān)的控制信號,有的是輸入也有的是輸出線。 8086的第33腳是MN/:最小/最大方式控制線,用來控制8086的工作方式。當(dāng)MN/接+5V時(shí),8086處于最小方式,由8086提供系統(tǒng)所需的全部控制信號,用來構(gòu)成一個小型的單處理機(jī)系統(tǒng)。

當(dāng)MN/接地時(shí),8086處于最大方式,系統(tǒng)的總線控制信號由專用的總線控制器8288提供,用來構(gòu)成一個多處理器或協(xié)處理器系統(tǒng)。最小系統(tǒng)是一個單處理器系統(tǒng),系統(tǒng)的規(guī)模小,由CPU直接產(chǎn)生系統(tǒng)總線的控制信號。最大系統(tǒng)是一個多處理器系統(tǒng),系統(tǒng)規(guī)模大,CPU不直接產(chǎn)生系統(tǒng)總線的控制信號,系統(tǒng)增設(shè)了一片總線控制器8288,在CPU控制總線時(shí)8288有效,CPU將訪問總線的狀態(tài)信號送入8288,8288譯碼后產(chǎn)生系統(tǒng)總線的控制信號。8086的控制信號一部分與最大、最小方式有關(guān),雙重功能。一部分位公共的,不分最大最小方式。

(1)受最小、最大影響的信號線(雙重功能)

第26---28腳,三引腳功能分別為最大方式:—總線周期狀態(tài)信號(三態(tài)、輸出)表示8086外部總線周期的操作類型。

共可產(chǎn)生8種總線操作狀態(tài)指示,8288譯碼后可產(chǎn)生相應(yīng)的控制信號,

狀態(tài)信號的編碼

S2S1S0CPU操作過程8288產(chǎn)生信號

000發(fā)中斷響應(yīng)信號INTA001讀I/O端口IORC010寫I/O端口IOWC011暫停無

100取指令MRDC101讀存儲器MRDC110寫存儲器MWTC111無作用無最小方式下: 、、。MOVIN/OUT為存儲器/IO訪問控制信號(輸出、三態(tài)),=1時(shí)用于區(qū)分CPU訪問的是存儲器,=0時(shí)訪問的是I/O端口??捎糜诖鎯^(qū)譯碼或I/O譯碼選擇控制。ABM/IO存儲器譯碼EN

I/O譯碼EN存儲器I/O端口M/IO還可以與RD、WR組合產(chǎn)生訪問存儲器的讀寫和訪問I/O的讀寫控制信號。M/IO=1RD=0組合產(chǎn)生MEMR(存儲器讀)M/IO=1WR=0組合產(chǎn)生MEMW(存儲器寫)M/IO=0RD=0組合產(chǎn)生IOR(I/O讀)M/IO=0WR=0組合產(chǎn)生IOW(I/O寫)DT/R:數(shù)據(jù)收發(fā)器發(fā)送/接收控制信號,三態(tài)輸出。此信號控制數(shù)據(jù)總線上的收發(fā)器8286的數(shù)據(jù)傳送方向,DT/R=1,發(fā)送數(shù)據(jù)----寫操作;DT/R=0,接收數(shù)據(jù)--讀操作。M/IORDWRMEMRMEMWIORIOWDEN:數(shù)據(jù)允許信號,三態(tài)輸出,低電平有效。作為數(shù)據(jù)總線上收發(fā)器8286的選通信號。數(shù)據(jù)收發(fā)器由多個雙向三態(tài)門組成專門用于控制數(shù)據(jù)傳送的部件。DEN在總線周期T2----T4有效=0,在此期間數(shù)據(jù)收發(fā)器開門,CPU可以傳送數(shù)據(jù)信息,DT/R可以控制數(shù)據(jù)傳送的方向。AD15—AD0DENDBDT/R數(shù)據(jù)收發(fā)器第30、31腳最大方式的功能為:RQ/GT0、RQ/GT1:總線請求信號(輸入)/總線請求允許信號(輸出),雙向,低電平有效。最小方式的功能為:HOLD:總線請求信號,輸入,高電平有效。HLDA:總線請求響應(yīng)信號,輸出,高電平有效。以上均用于總線請求與總線響應(yīng)過程的控制??偩€請求與總線響應(yīng)過程共分為三個階段:請求---允許----釋放A.請求:需要使用總線的部件向CPU產(chǎn)生總線請求信號送入CPU.B.允許:CPU響應(yīng)后產(chǎn)生允許信號通知請求部件。同時(shí)CPU放棄總線,所有三態(tài)線進(jìn)入高阻狀態(tài)。請求部件收到允許信號后就可以控制總線進(jìn)行總線操作了。C.釋放:請求部件使用總線結(jié)束后釋放總線并通知CPU,CPU收到后收回總線繼續(xù)操作。:請求/允許總線訪問控制信號(雙向)。最大方式時(shí):RQ/GT0接協(xié)處理器8087RQ/GT1接協(xié)處理器8089要在一根線上實(shí)現(xiàn)三個階段的控制采用的是三個負(fù)脈沖。

第一個:由請求部件送入CPU,表示請求使用總線。第二個:由CPU送個請求部件,表示CPU已經(jīng)允許并放棄總線,請求部件收到后可以使用總線。第三個:由請求部件送給CPU,表示總線已使用結(jié)束并釋放總線,CPU收到后可收回總線。注意:RQ/GT0的級別比RQ/GT1高。最小方式時(shí)HOLD、HLDA用于DMA控制器,由于2條線只用于一個部件,所以可采用電平方式HOLD:總線請求信號,輸入,高電平有效。當(dāng)系統(tǒng)中CPU之外的另一個控制器要求使用總線時(shí),通過它向CPU發(fā)HOLD=1高電平的請求信號。HLDA:總線請求響應(yīng)信號,輸出,高電平有效。當(dāng)HLDA=1有效時(shí),表示CPU對其它控制器的總線請求作出響應(yīng),與此同時(shí),所有與三總線相接的CPU的線腳呈現(xiàn)高阻抗?fàn)顟B(tài),從而讓出總線。請求部件可以使用總線完成所需的操作。請求部件使用總線結(jié)束后將HOLD=0。表示使用結(jié)束并已釋放總線。CPU收到后將HLDA=0并收回總線。第24—25腳:最大時(shí)的功能是QS1、QS2:指令隊(duì)列狀態(tài)信號,輸出。

QS1QS2含義

00無操作

01將指令首字節(jié)送入指令隊(duì)列

10隊(duì)列為空

11將指令其余字節(jié)送指令隊(duì)列最小時(shí)功能為:ALE和ALE:地址鎖存允許信號,輸出,高電平有效。用來鎖存地址信號A19-A0,分時(shí)使用AD15-AD0地址/數(shù)據(jù)總線。ALEA19—A16AD15—AD0AB

BHE

DENDB地址鎖存器數(shù)據(jù)收發(fā)器D15—D0A19—A0BHEALE信號在T1時(shí)刻有效,此時(shí)地址鎖存器輸入開門,CPU產(chǎn)生的地址信息→地址鎖存器→AB.在T1結(jié)束時(shí),ALE由1→0,鎖存器此時(shí)鎖存CPU產(chǎn)生的地址信息。T2—T4時(shí)刻:ALE=0無效,地址鎖存器輸入關(guān)門。而DEN=0有效,數(shù)據(jù)收發(fā)器允許工作,CPU傳送數(shù)據(jù)信息。T2—T4時(shí)刻由地址鎖存器繼續(xù)輸出地址信息。系統(tǒng)利用地址鎖存器和數(shù)據(jù)收發(fā)器實(shí)現(xiàn)了地址/數(shù)據(jù)分時(shí)復(fù)用。INTA:中斷響應(yīng)信號,輸出,低電平有效。表示CPU響應(yīng)了外設(shè)發(fā)來的中斷申請信號INTR。(4)第29腳:最大方式的功能:LOCK總線封鎖信號,三態(tài)輸出,低電平有效。CPU執(zhí)行的指令很重要不允許CPU響應(yīng)響應(yīng)總線請求時(shí),可在指令前加入前綴LOCK,例如:LOCKMOVAX,1234H,CPU執(zhí)行時(shí)可產(chǎn)生LOCK=0,用于封鎖其它控制器請求總線。最小方式的功能:WR:寫信號,三態(tài)輸出,低電平有效。WR=0,表示當(dāng)前CPU正在對存儲器或I/O端口進(jìn)行讀操作。(2)、不受MN/MX影響的控制總線─讀信號,三態(tài)輸出,低電平有效。RD=0,表示當(dāng)前CPU正在對存儲器或I/O端口進(jìn)行讀操作。M/IO=1RD=0組合產(chǎn)生MEMR(存儲器讀)M/IO=1WR=0組合產(chǎn)生MEMW(存儲器寫)M/IO=0RD=0組合產(chǎn)生IOR(I/O讀)M/IO=0WR=0組合產(chǎn)生IOW(I/O寫)

READY:準(zhǔn)備就緒信號,輸入,高電平有效。READY=1,表示CPU訪問的存儲器或IO端口已準(zhǔn)備好傳送數(shù)據(jù)。CPU在T3結(jié)束后進(jìn)入T4,CPU在T3結(jié)束后完成讀寫進(jìn)入T4后,總線復(fù)位,本次操作結(jié)束。被訪問的存儲器或IO端口在總線周期T3時(shí)未準(zhǔn)備好傳送數(shù)據(jù)時(shí)可設(shè)置READY=0,表示未準(zhǔn)備好,CPU在T3結(jié)束后不進(jìn)入T4,此時(shí)對應(yīng)的時(shí)鐘稱為等待時(shí)鐘TW,相當(dāng)于自動插入等待時(shí)鐘,直到READY=1為止。當(dāng)被訪問的部件可以完成數(shù)據(jù)傳輸時(shí),被訪問的部件將使READY=1(高電平),8086CPU結(jié)束TW進(jìn)入T4繼續(xù)運(yùn)行。

(3)、INTR:可屏蔽中斷請求信號,輸入,高電平有效。當(dāng)INTR=1,表示外設(shè)向CPU發(fā)出中斷請求,CPU在當(dāng)前指令周期的最后一個T狀態(tài)去采樣該信號,當(dāng)INTR=1,并且IF=1(允許中斷),CPU在當(dāng)前指令結(jié)束后即可響應(yīng)中斷,進(jìn)入中斷服務(wù)響應(yīng)周期,在中斷響應(yīng)周期中可產(chǎn)生兩個INTA(中斷響應(yīng)信號),在第二個INTA時(shí),中斷源送入類型號→CPU,CPU由此進(jìn)入中斷服務(wù)程序執(zhí)行進(jìn)行中斷服務(wù)。CLKT1T2T3T4T1T2T3T4第一中斷響應(yīng)周期第二中斷響應(yīng)周期ALEINTAAD7-AD08086中斷響應(yīng)周期的時(shí)序圖(4)、NMI:不可屏蔽中斷請求信號,輸入,上升沿觸發(fā)。該請求信號不受IF狀態(tài)的影響,也不能用軟件屏蔽,一旦該信號有效,則執(zhí)行完當(dāng)前指令后立即響應(yīng)中斷。響應(yīng)后不執(zhí)行中斷響應(yīng)周期,直接產(chǎn)生類型號,CPU進(jìn)入中斷服務(wù)程序執(zhí)行處理NMI中斷。NMI中斷級別高于INTR,用于處理緊急情況。例如:內(nèi)存奇偶校驗(yàn)錯、I/O校驗(yàn)錯、協(xié)處理器出錯、電源掉電等。(5)、TEST:等待測試信號,輸入,低電平有效。在CPU執(zhí)行某條指令后需等待外部的部件完成操作并回送一個信號到TEST后CPU才可執(zhí)行下條指令,此時(shí)可在該指令后設(shè)置一條等待指令WAIT,CPU執(zhí)行WAIT指令時(shí),每隔5個時(shí)鐘周期對TEST進(jìn)行一次測試,若TEST=1,CPU繼續(xù)等待,直到TEST=0,CPU結(jié)束等待狀態(tài)執(zhí)行下條指令。(6)、RESET:復(fù)位信號,輸入,高電平有效。RESET信號至少要保持4個時(shí)鐘周期CPU進(jìn)入復(fù)位。復(fù)位后:標(biāo)志寄存器FR、指令指針I(yè)P、段DS、SS、ES為0,CS=FFFFH。指令隊(duì)列清空。復(fù)位后CPU從CS*10H+IP=FFFF0H處開始取第一條指令執(zhí)行啟動系統(tǒng)。3、其它信號:(1)CLK:主時(shí)鐘信號,輸入。由該腳送入8086/8088的時(shí)鐘信號,頻率為5MHZ,占空比為1:3。TT=200ns

2/3

1/3(2)VCC:電源輸入端,8086/8088采用單+5V電源。(3)GND:地線。1、20引腳為地線。二、8088的引腳與8086的不同之處8088是準(zhǔn)16位處理器,內(nèi)部結(jié)構(gòu)與8086相同。8088與8086引腳不同之處有:(1)地址/數(shù)據(jù)分時(shí)復(fù)用:8086AD15—AD0共16條。8088AD7—AD0共8條,A15—A8為單一功能的地址線。(2)8088無BHE/S7引腳,8088DB為8位,存儲器不用分體,該腳功能改為SS0.(3)8086的M/IO在8088中改為IO/M。2023/2/6>>微機(jī)原理<<872.18086/8088微處理器2.1.5存儲器組織1.存儲器地址空間和數(shù)據(jù)存儲格式(1)8086的存儲器以字節(jié)為單位組織,具有20條地址總線,可尋址的存儲器地址空間容量為1MB。每個字節(jié)對應(yīng)一個唯一的地址,地址范圍為0~220(即00000H~FFFFFH)。2023/2/6>>微機(jī)原理<<882.18086/8088微處理器8086系統(tǒng)將其內(nèi)存貯器分成兩個部分,每一部分為512KB。一部分叫偶存貯體,其內(nèi)存單元的地址碼都是偶數(shù),數(shù)據(jù)總線接CPU數(shù)據(jù)總線的低8位D7—D0;另一部分叫奇存貯體,其中內(nèi)存單元的地址碼都是奇數(shù),數(shù)據(jù)總線對應(yīng)接CPU數(shù)據(jù)總線的高8位D15—D8。每個存貯體有19條地址線,兩個存貯體的全部地址線對應(yīng)與CPU的19條地址總線A1~A19相聯(lián)。地址線A0作為偶存貯體的片選信號,作為奇存貯體的片選信號。23540H=0010001101010100000034H23541H=0010001101010100000112H發(fā)地址=0010001101010100000同時(shí)選中奇偶體的2個單元(A0=0選偶體。BHE=0選奇體)D15—D8=12HD7—D0=34HD15—D0=1234H(16位)2023/2/6>>微機(jī)原理<<892023/2/6>>微機(jī)原理<<902023/2/6>>微機(jī)原理<<912.18086/8088微處理器(2)數(shù)據(jù)存儲格式:8086有16根數(shù)據(jù)線,可以進(jìn)行16位或8位運(yùn)算。8位二進(jìn)制數(shù)組成一個字節(jié),二個字節(jié)組成一個字。存儲器內(nèi)兩個連續(xù)的字節(jié),定義為一個字,一個字中的每個字節(jié),都有一個字節(jié)地址,每個字的低字節(jié)存放在低地址中,高字節(jié)存放在高地址中。字的地址指低字節(jié)的地址。各位的編號方法是最低位為位0,一個字節(jié)中,最高位編號為位7,一個字中最高位的編號為位15。2.18086/8088微處理器2.存儲器的分段為了使8086CPU能尋址到外部存儲器1MB空間中任何一個單元,采用了地址分段方法(將1MB空間分成若干個邏輯段),每段不超過64KB。段與段能連續(xù)排列。也能部分重疊,完全重疊,斷續(xù)排列。段數(shù)也沒有一定限制。一個存儲單元可以只屬于某一段,也可以屬于多個互相重疊的段。最終將尋址范圍擴(kuò)大到1MB。2.18086/8088微處理器3.存儲器的物理地址形成邏輯地址:“段地址:偏移地址”物理地址=段地址×10H+段內(nèi)偏移地址8086系統(tǒng)存儲器的組織及物理地址的形成1、8086/8088系統(tǒng)存儲器的組織

8086/8088是16位的微處理器,有20位地址線,可以訪問1MB的內(nèi)存空間,地址編號為00000H—FFFFFH.

在組成存儲系統(tǒng)時(shí),總是使偶地址單元的數(shù)據(jù)通過AD7

~AD0傳送,而奇地址單元的數(shù)據(jù)通過AD15~

AD8傳送,所有的操作可以是按字節(jié)為單位也可以是按字為單位來處理的,但8086/8088系統(tǒng)中的存儲器是以8位(一個字節(jié))為單位對數(shù)據(jù)進(jìn)行處理的。因此每個字節(jié)用一個唯一的地址碼表示,這稱為存儲器的標(biāo)準(zhǔn)結(jié)構(gòu)。

需要說明的是,在存儲器中,任何連續(xù)存放的兩個字節(jié)都可以稱為一個字。存放時(shí)采用小數(shù)端方式,低字節(jié)存放在低地址單元,高字節(jié)存放在高地址單元。其低位字節(jié)可從奇數(shù)地址開始,這種方式稱為非規(guī)則方式,奇數(shù)地址的字稱為非對準(zhǔn)字。其高位字節(jié)可從偶數(shù)地址開始,這種方式稱為規(guī)則方式,。將偶數(shù)地址的字稱為對準(zhǔn)字。對準(zhǔn)字可以在一次訪問中實(shí)現(xiàn)16位讀寫。非對準(zhǔn)字必須用二次訪問才可以實(shí)現(xiàn)16位讀寫。例如:1234H存放在2000H單元(對準(zhǔn)字---偶地址字)(2000H)=34H2000H(2001H)=12H2001H書寫:(2000H)=1234H2000H為字地址,2001H是隱含的。34H12H例如:5678H存放在2003H單元(未對準(zhǔn)字---奇地址字)(2003H)=78H2003H(2004H)=56H2004H書寫:(2003H)=1234H2003H為字地址,2004H是隱含的。78H56H例如:(2000H)=41H(2001H)=42H這里2000H、2001H為字節(jié)單元,CPU每次訪問一個單元中的8位數(shù)據(jù)。存儲單元為字單元還是字節(jié)單元是通過數(shù)據(jù)段定義時(shí)決定的,定義后必須按屬性訪問,但可以通過重新指定屬性的方式按所需的屬性訪問。在考慮執(zhí)行速度時(shí)應(yīng)該采用對準(zhǔn)好字。8086存儲器的分段結(jié)構(gòu)

(1)為什么要分段由于8086/8088有20條地址線,可以尋址多達(dá)220(1M)字節(jié),而8086/8088內(nèi)部數(shù)據(jù)通路和寄存器均為16位,所以編程中的地址只能為16位。所以必須引入分段的方法,把1M字節(jié)的存儲器分為任意數(shù)量的段,其中每一段最多可達(dá)尋址216(64K)字節(jié),程序中就可以用16位的方式進(jìn)行訪問了。

(2)分段8086CPU把1M字節(jié)的存儲器空間劃分為任意的一些存儲段,一個存儲段是存儲器中可獨(dú)立尋址的一個邏輯單位,也稱邏輯段,每個段的長度為64K字節(jié)。8086CPU中有四段寄存器:CS,DS,SS和ES,這四個段寄存器存放了CPU當(dāng)前可以尋址的四個段的基址,也即可以從這四個段寄存器規(guī)定的邏輯段中存取指令代碼和數(shù)據(jù)。一旦這四個段寄存器的內(nèi)容被設(shè)定,就規(guī)定了CPU當(dāng)前可尋址的段。

一個存儲段是存儲器的一個邏輯單位,其長度可達(dá)64K字節(jié),每段第一個字節(jié)的位置稱為“段起始地址”。對段起始地址的要求是:最好能被16整除(起始地址為××××0H)。段寄存器中存放了與段起始地址有關(guān)的16位“段基值”(SegmentBasevalue),幾個段可以相互重疊,也可指向同一個64K字節(jié)空間。例如:地址從30000H作為段起始地址的存儲區(qū)域,3000H作為段基址,30000H位段起始地址,訪問31000H單元的地址可以為:3000H:1000H3000H為段基址,1000H為段內(nèi)偏移地址。30000H3000H:0000H1000H

(偏移量)

31000H3000H:1000H{采用分段后,每段的最大空間只有64K。對大于64K的信息可以采用多段存放,從一段到另一段訪問時(shí)需要同時(shí)改變段基址和段內(nèi)偏移地址(共32位),稱為段間訪問。例如:3000H:1000H4500H:0500H

對存儲空間小于64KB的,為了節(jié)省存儲空間可以采用分段相互重疊和全部重疊的方法,把不用的空間用作其他段使用。例如:部分重疊完全重疊段1、段2段2段1段1、段2對于段內(nèi)訪問:可以只需要修改段內(nèi)偏移地址就可以在64KB的范圍內(nèi)訪問多個單元,段基址不用改變。例如:2500H:0100H0150H

(3)物理地址與邏輯地址在具有地址變換機(jī)構(gòu)的計(jì)算機(jī)中,有兩種存儲器地址:一種是邏輯地址(LogicalAddress)

—允許在程序中編排的地址。包括:段地址(16位),段內(nèi)偏移地址(16位)。一種是物理地址(PhysicalAddress)

—信息在存儲器中實(shí)際存放的地址(20位)。8086系統(tǒng)中,對給定的任一存儲單元而言有兩部分邏輯地址;“段基值”—決定所在段第一個字節(jié)的位置;“段內(nèi)偏移量”(Offset)—該存儲單元相對于該段起始單元的距離?!岸位怠贝娣旁诙渭拇嫫鳎–S、SS、DS、ES)中?!岸蝺?nèi)偏移量”由SP、BP、SI、DI、IP、BX和直接地址以及上述寄存器和直接地址的組合而形成。

8086/8088CPU中有一個地址加法器,它將段寄存器提供的段地址自動乘以10H即左移4位,然后與16位的偏移地址相加,并鎖存在物理地址鎖存器中。如圖所示。物理地址=段基址*16+偏移地址。段基址:CS、DS、ES、SS。偏移地址:IP、DI、SI、BP、SP等。段寄存器值偏移量+物理地址16位4位16位20位存儲器物理地址的計(jì)算方法

CS0000

IP代碼段

DS或ES0000

SI、DI或BX

SS0000

SP或BP數(shù)據(jù)段堆棧段存儲器段寄存器和偏移地址寄存器組合關(guān)系8086系統(tǒng)中邏輯地址的來源可歸納如表所示。注:EA(EffectiveAddress)為有效地址,反映操作數(shù)的段內(nèi)偏移地址。指令的物理地址=CS*10H+IP堆棧棧頂物理地址=SS*10H+SP操作數(shù)物理地址=DS*10H+EAEA(有效地址)由尋址方式產(chǎn)生,包括:直接偏移地址、由BX、SI、DI寄存器產(chǎn)生的間接地址(包括:直接間址、基址、變址等)源數(shù)據(jù)串物理地址=DS*10H+SI

目的數(shù)據(jù)串物理地址=ES*10H+DI堆棧區(qū)內(nèi)數(shù)據(jù)物理地址=SS*10H+BP可替換的段基址又稱為段超越或段跨越。實(shí)現(xiàn)的方法:在尋址方式前加‘段寄存器名:’例如:MOVAX,[BX];用BX間接尋址的隱含段是DS,尋址的物理地址=DS*10H+BX如果現(xiàn)在用BX間址訪問的段是SS,指令就要寫成:MOVAX,SS:[BX];尋址的物理地址=SS*10H+BX2023/2/6>>微機(jī)原理<<1132.18086/8088微處理器2.1.6輸入輸出組織8086/8088CPU共有20條地址線,對存儲器和I/O端口的尋址采用獨(dú)立編址的方式,低16條用來給I/O編址,所以能尋址的I/O空間為64K(216)個,端口號取值范圍:0000H~FFFFH。兩個端口編號相鄰的8位端口可組成一個16位端口。8086/8088CPU用地址線的低16位加上部分控制線完成對I/O端口的存取。2023/2/6>>微機(jī)原理<<1142.18086/8088微處理器2.1.7系統(tǒng)配置

1.最小模式下的系統(tǒng)配置

——是單微處理器系統(tǒng)。除8086CPU以外,系統(tǒng)包括:存貯器、I/O接口時(shí)鐘發(fā)生器8284,地址鎖存器8282和數(shù)據(jù)收發(fā)器82862023/2/6>>微機(jī)原理<<1152.18086/8088微處理器2023/2/6>>微機(jī)原理<<1162.18086/8088微處理器

2.最大模式下的系統(tǒng)配置

——是由多個微處理器/協(xié)處理器構(gòu)成的多機(jī)系統(tǒng),CPU引腳MN/接地(GND)。在最小模式的配置上,增加了總線控制器(8288),總線裁決器(8289)。2023/2/6>>微機(jī)原理<<1172.18086/8088微處理器2023/2/6>>微機(jī)原理<<1182.18086/8088微處理器3.最大方式時(shí)序與最小方式時(shí)序的區(qū)別(1)控制信號ALE、DEN和DT/(2)命令信號、、、

溫馨提示

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

最新文檔

評論

0/150

提交評論