




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2.1 8086/8088微處理器的結(jié)構(gòu)2.2 8086/8088的存儲(chǔ)器組織2.3 8086/8088的引腳及功能2.4 8086/8088微處理器的時(shí)序2.5 80X86微處理器簡(jiǎn)介第2章 8086/8088微處理器的結(jié)構(gòu)及原理12.1 8086/8088微處理器的結(jié)構(gòu)2.1.1 8086/8088 CPU內(nèi)部功能 8086與8088 CPU結(jié)構(gòu)相似,從功能上可分為兩個(gè)部分:執(zhí)行單元 (Execution Unit,EU) 總線接口單元 (Bus Interface Unit,BIU) 2圖2.1 8088 CPU的結(jié)構(gòu)框圖3 1. 執(zhí)行單元 EU 1) 執(zhí)行單元的組成 執(zhí)行單元主要包括五
2、個(gè)部分:8個(gè)通用寄存器:算術(shù)邏輯單元(ALU)標(biāo)志寄存器FLAGS 數(shù)據(jù)暫存寄存器EU控制電路 2) 執(zhí)行單元的功能 執(zhí)行單元EU的功能:負(fù)責(zé)執(zhí)行指令42. 總線接口單元BIU 1)總線接口單元的組成 總線接口單元主要包括五個(gè)部分: 4個(gè)段寄存器:包括CS、DS、SS和ES 指令指針寄存器IP:存放下一條要讀取的指令的偏移地址 地址加法器:生成20位的物理地址 指令隊(duì)列緩沖器:保存BIU從內(nèi)存單元讀入的指令總線控制電路:控制總線的使用 5BIU中的4個(gè)段寄存器分別存放程序代碼段、數(shù)據(jù)段、堆棧段和附加數(shù)據(jù)段的段地址。 (1)段寄存器CS 存放程序代碼段,16位16位的段地址和16位的段內(nèi)偏移地址
3、組成20位的內(nèi)存地址。它們分別由相關(guān)的寄存器提供,再通過(guò)地址加法器,生成20位的地址,實(shí)現(xiàn)CPU對(duì)1M存儲(chǔ)空間的尋址。6(2)指令指針寄存器IP 存放下一條要讀取的指令在代碼段中的偏移地址。 IP在程序運(yùn)行中能自動(dòng)加1修正,從而始終指向下一條要讀取的指令。程序運(yùn)行時(shí)根據(jù)CS和IP的內(nèi)容決定的執(zhí)行指令的位置。 CS和IP的內(nèi)容是由系統(tǒng)根據(jù)程序的運(yùn)行順序自動(dòng)裝入的,不能直接用賦值指令修改。 7(3)20位地址加法器作用:將16位的段地址和16位的段內(nèi)偏移地址,生成20位的地址。邏輯地址:把用段地址和偏移地址表示存儲(chǔ)單元的地址。表達(dá)形式:“段地址:段內(nèi)偏移地址”物理地址:由邏輯地址生成的20位地址稱(chēng)
4、為物理地址。8邏輯地址向物理地址的轉(zhuǎn)換: 將16位的段地址左移4位加上16位的偏移地址,相當(dāng)于十六進(jìn)制數(shù)左移1位(或乘以10H),得到20位的物理地址。邏輯地址向物理地址的轉(zhuǎn)換公式:物理地址=段地址10H段內(nèi)偏移地址 9(4)指令隊(duì)列緩沖器作用:保存BIU從內(nèi)存單元讀入的指令。 8088的指令隊(duì)列有4個(gè)字節(jié)。當(dāng)指令隊(duì)列出現(xiàn)1個(gè)空字節(jié)時(shí),BIU就自動(dòng)執(zhí)行一次取指令周期,將下一條要執(zhí)行的指令從內(nèi)存單元讀入指令隊(duì)列供EU使用。 指令采用“先進(jìn)先出”原則順序存放,并按順序讀取到EU中去執(zhí)行。 102)總線接口單元的功能作用:負(fù)責(zé)從存儲(chǔ)器或I/O端口取指令、取操作數(shù)和保存運(yùn)算結(jié)果。 EU和BIU并行工作
5、,互不影響,提高CPU的執(zhí)行速度。112.1.2 8086/8088的寄存器8086/8088CPU內(nèi)部有14個(gè)16位的寄存器按功能分: 通用寄存器(8個(gè)): AX、BX、CX、DX SP、BP、 SI、DI 段寄存器(4個(gè)): CS、DS、SS、ES 控制寄存器(2個(gè)): IP/F 12圖2.2 8086/8088CPU內(nèi)部寄存器結(jié)構(gòu)131. 通用寄存器 包括四個(gè)數(shù)據(jù)寄存器,兩個(gè)地址指針寄存器和兩個(gè)變址寄存器。1)數(shù)據(jù)寄存器AX、BX、CX、DX暫時(shí)存放參與運(yùn)算的操作數(shù)或中間運(yùn)算結(jié)果。4個(gè)數(shù)據(jù)寄存器都為16位,但又可將高、低8位分開(kāi),作為8個(gè)獨(dú)立的8位寄存器: AX AH、AL BX BH、
6、BL CX CH、CL DX DH、DL“H”:高8位,“L”:8位。14AX(Accumulator):累加器 存放算術(shù)邏輯運(yùn)算中的操作數(shù); 所有的I/O指令都使用累加器與外設(shè)端口交換信息。BX(Base):基址寄存器 存放操作數(shù)在內(nèi)存中數(shù)據(jù)段內(nèi)的基地址。 CX(Counter):計(jì)數(shù)器 在設(shè)計(jì)循環(huán)程序時(shí)一般使用該寄存器存放循環(huán)次數(shù)。DX(Data):數(shù)據(jù)寄存器。 在寄存器間接尋址的I/O指令中存放I/O端口地址;在做雙字長(zhǎng)乘除法運(yùn)算時(shí),DX與AX一起存放一個(gè)雙字長(zhǎng)操作數(shù),其中DX存放高16位數(shù)。 152)地址指針寄存器SP、BPSP(Stack Pointer):堆棧指針寄存器在使用堆棧操
7、作指令(PUSH或POP)對(duì)堆棧進(jìn)行操作時(shí),每執(zhí)行一次進(jìn)?;虺鰲2僮?,系統(tǒng)會(huì)自動(dòng)將SP的內(nèi)容減2或加2,以使其始終指向棧頂。 BP(Base Pointer):基址指針寄存器用來(lái)存放數(shù)據(jù),或存放操作數(shù)在堆棧段內(nèi)的基地址。163)變址寄存器SI、DISI(Source Index):源變址寄存器DI(Destination Index):目的變址寄存器通常用在字符串操作時(shí)存放操作數(shù)的偏移地址,其中SI存放源串在數(shù)據(jù)段內(nèi)的偏移地址,DI存放目的串在附加數(shù)據(jù)段內(nèi)的偏移地址。 172. 段寄存器CS、DS、SS、ES 8086/8088微處理器采用存儲(chǔ)器分段管理機(jī)制管理1M個(gè)存儲(chǔ)單元。定義4個(gè)獨(dú)立的邏
8、輯段,將程序代碼或數(shù)據(jù)分別放在這4個(gè)邏輯段中。每個(gè)段大小不固定,最多可達(dá)64K(216)個(gè)存儲(chǔ)單元。每個(gè)邏輯段的段地址分別放在對(duì)應(yīng)的段寄存器中,代碼或數(shù)據(jù)在段內(nèi)的偏移地址由有關(guān)寄存器或立即數(shù)給出。188086/8088的四個(gè)段寄存器:CS(Code Segment):代碼段寄存器,存儲(chǔ)程序當(dāng)前使用的代碼段的段地址(起始地址)。指令指針寄存器IP的內(nèi)容為段內(nèi)的偏移地址,由CS和IP的內(nèi)容就得到下一條要讀取的指令在存儲(chǔ)器中的物理地址。 DS(Data Segment):數(shù)據(jù)段寄存器,存放程序當(dāng)前使用的數(shù)據(jù)段的段地址。SS(Stack Segment):堆棧段寄存器,存放程序當(dāng)前所使用的堆棧段的段地
9、址。 堆棧是存儲(chǔ)器中開(kāi)辟的按先進(jìn)后出原則組織的一個(gè)特殊存儲(chǔ)區(qū),主要用于調(diào)用子程序或執(zhí)行中斷服務(wù)程序時(shí)保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。 19ES(Extra Segment):附加數(shù)據(jù)段寄存器,存放程序當(dāng)前使用的附加數(shù)據(jù)段的段地址。 與數(shù)據(jù)段相同的是,其段內(nèi)偏移地址可以通過(guò)各種尋址方式得到,但在偏移地址前要加上段超越前綴“ES:”。串操作時(shí)將該段作為目的數(shù)據(jù)段,即該寄存器用來(lái)存放字符串操作時(shí)的目的字符串。20段寄存器提供段內(nèi)偏移地址的寄存器CSIPDSBX、SI、DI或一個(gè)16位數(shù)SSSP或BPESDI(用于字符串操作指令)表2.1 8086/8088段寄存器與提供段內(nèi)偏移地址的寄存器之間的默認(rèn)組合 213.
10、控制寄存器IP/F IP(Instruction Pointer):指令指針寄存器 存放預(yù)取指令在代碼段內(nèi)的偏移地址。F(FLAGS):標(biāo)志寄存器 16位的寄存器。用了9位: 6個(gè)狀態(tài)標(biāo)志位和3個(gè)控制標(biāo)志位。 22圖2.3 8086/8088的標(biāo)志寄存器 231) 狀態(tài)標(biāo)志位反映算術(shù)和邏輯運(yùn)算結(jié)果的一些特征。6個(gè)狀態(tài)標(biāo)志位的功能:CF(Carry Flag):進(jìn)位標(biāo)志位。進(jìn)行加減運(yùn)算時(shí),若最高位發(fā)生進(jìn)位或借位則CF1,否則CF0。PF(Parity Flag):奇偶標(biāo)志位。當(dāng)運(yùn)算結(jié)果的低8位中含有偶數(shù)個(gè)1時(shí),PF1,否則PF0。 AF(Auxiliary Flag):輔助進(jìn)位標(biāo)志位。加法或減法
11、運(yùn)算時(shí),若結(jié)果的低字節(jié)的低4位向高4位有進(jìn)位或借位,則AF1,否則AF0。ZF(Zero Flag):零標(biāo)志位。若當(dāng)前的運(yùn)算結(jié)果為0,則ZF1,否則ZF0。SF(Sign Flag):符號(hào)標(biāo)志位。與運(yùn)算結(jié)果的最高位相同,當(dāng)運(yùn)算結(jié)果的最高位為1時(shí),SF=1,否則為0。OF(Overflow Flag):溢出標(biāo)志位。當(dāng)運(yùn)算結(jié)果超出了帶符號(hào)數(shù)的范圍,即溢出時(shí),OF=1,否則OF=0。主要用來(lái)判斷帶符號(hào)數(shù)運(yùn)算結(jié)果是否溢出。8位有符號(hào)數(shù)的范圍是128127,16位有符號(hào)數(shù)的范圍是32 76832 767。 242) 控制標(biāo)志位:3個(gè)設(shè)置控制條件來(lái)控制CPU的操作,由程序設(shè)置或清除。TF(Trap Fla
12、g):跟蹤標(biāo)志位。 測(cè)試程序時(shí),若將TF設(shè)置為1,8086/8088CPU處于單步工作方式,否則,將正常執(zhí)行程序。單步工作方式為計(jì)算機(jī)每執(zhí)行一條指令,自動(dòng)產(chǎn)生一次單步中斷,可以方便地逐條檢查程序。IF(Interrupt Flag):中斷允許標(biāo)志位。 控制可屏蔽中斷的控制標(biāo)志。若IF=1,允許CPU接受可屏蔽中斷請(qǐng)求;若IF0,禁止CPU響應(yīng)可屏蔽中斷請(qǐng)求。IF的狀態(tài)對(duì)非屏蔽中斷及內(nèi)部中斷沒(méi)有影響。 DF(Direction Flag):方向標(biāo)志位。 控制串操作指令用的標(biāo)志,若DF1,串操作按減地址方式進(jìn)行;DF0,串操作按增地址方式進(jìn)行。252.2 8086/8088的存儲(chǔ)器組織2.2.1
13、8086/8088存儲(chǔ)空間8086/8088有20條地址總線,可直接對(duì)1 M(220)個(gè)存儲(chǔ)單元進(jìn)行訪問(wèn)。每個(gè)存儲(chǔ)單元有唯一的20位存儲(chǔ)器地址與其對(duì)應(yīng),地址范圍為0220-1,用十六進(jìn)制表示:00000HFFFFFH。一個(gè)存儲(chǔ)單元中存放的信息稱(chēng)為該存儲(chǔ)單元的內(nèi)容。每個(gè)存儲(chǔ)單元都有8位的存儲(chǔ)空間,即一次只能存放一個(gè)字節(jié)型數(shù)據(jù)。存儲(chǔ)器存放的數(shù)據(jù)類(lèi)型還可以是字、雙字。26字節(jié)數(shù)據(jù) 位數(shù):8位 對(duì)應(yīng)一個(gè)存儲(chǔ)器地址,即存放在一個(gè)內(nèi)存單元中。存放或讀取數(shù)據(jù)時(shí),只需根據(jù)地址對(duì)其所指的單元進(jìn)行操作即可。例題:字節(jié)數(shù)據(jù)0AH存放在存儲(chǔ)器地址為E0100H的單元,則記為:(E0100H)=0AH。 存儲(chǔ)情況如圖2
14、.4(a)所示。2728字?jǐn)?shù)據(jù)位數(shù):16位對(duì)應(yīng)兩個(gè)連續(xù)的存儲(chǔ)器地址,存放在兩個(gè)連續(xù)的內(nèi)存單元中。存放數(shù)據(jù)時(shí),規(guī)定字?jǐn)?shù)據(jù)的低8位存放在低地址,高8位存放在高地址。同時(shí)規(guī)定將低8位的地址作為這個(gè)字的地址。讀取數(shù)據(jù)時(shí),只需給出數(shù)據(jù)類(lèi)型及低8位的地址即可,CPU自動(dòng)讀取給出地址所指的單元及下一個(gè)存儲(chǔ)單元的內(nèi)容。例題:字?jǐn)?shù)據(jù)0B0AH存放在從地址E0100H開(kāi)始的兩個(gè)連續(xù)單元,則記為:(E0100H)= 0B0AH。存儲(chǔ)情況如圖2.4(b)所示。29雙字?jǐn)?shù)據(jù)位數(shù):32位作為時(shí)地址指針,低16位是被尋址地址的偏移量,高16位是被尋址地址所在段的段地址。一個(gè)雙字?jǐn)?shù)據(jù)存放在四個(gè)連續(xù)的內(nèi)存單元中。低字節(jié)存放在低
15、地址單元,高字節(jié)存放在高地址單元。30例題:雙字?jǐn)?shù)據(jù)0F000B0AH存放在從地址E0100H開(kāi)始的四個(gè)連續(xù)單元,則記為:(E0100H)= 0F000B0AH。存儲(chǔ)情況如圖2.4(c)所示。如果此雙字?jǐn)?shù)據(jù)表示的是某數(shù)在內(nèi)存中的邏輯地址,則0B0AH為此數(shù)的偏移量,0F00H是段地址,邏輯地址可以用段地址和偏移量來(lái)表示。 段地址:偏移量0F00 :0B0AH312.2.2 存儲(chǔ)器的段結(jié)構(gòu) 8086/8088將整個(gè)存儲(chǔ)器分為若干邏輯段:代碼段、數(shù)據(jù)段、堆棧段和附加段。 每個(gè)邏輯段最大為64KB,最小為16B各個(gè)邏輯段允許在整個(gè)存儲(chǔ)空間中浮動(dòng),邏輯段與段之間可以是連續(xù)的、分開(kāi)的、部分重疊或完全重疊
16、。每個(gè)邏輯段的地址叫段地址。存儲(chǔ)器分段后,在每個(gè)段內(nèi)某一地址相對(duì)于段首地址(段地址)的偏移量叫偏移地址。 32表2. 3 8086/8088CPU對(duì)段寄存器在使用時(shí)的一些基本約定 332.2.3 邏輯地址與物理地址存儲(chǔ)器的每一個(gè)單元都有一個(gè)20位的實(shí)際地址,稱(chēng)為內(nèi)存單元的物理地址。8086/8088規(guī)定:分段總是從16字節(jié)的邊界處開(kāi)始,每段的起始地址最低4位總是0,即xxxx0H,每段的基地址可以用16位表示(最低4位默認(rèn)為0)。段內(nèi)偏移地址用16位表示段基地址和偏移地址用8086/8088 CPU中相應(yīng)的寄存器存放。 34段基址和段內(nèi)偏移地址又稱(chēng)為邏輯地址 。邏輯地址表示為 段基址:段內(nèi)偏移
17、 的形式,即xxxxH:yyyyH。邏輯地址和物理地址的關(guān)系: 20位物理地址段基址10H段內(nèi)偏移地址根據(jù)每段的段基址和段內(nèi)偏移地址得到20位的物理地址,可以訪問(wèn)存儲(chǔ)器的存儲(chǔ)單元。35圖2.5 由邏輯地址生成物理地址的方法36從邏輯地址到物理地址的轉(zhuǎn)換:例題: 如果某操作數(shù)在數(shù)據(jù)段內(nèi)的段基地址為2A0EH,偏移地址為2000H,則該操作數(shù)所在存儲(chǔ)單元的物理地址為: 段基址10H段內(nèi)偏移地址=2A0EH10H+2000H=2C0E0H 372.2.4 堆棧操作堆棧是在存儲(chǔ)器中開(kāi)辟的一個(gè)特定區(qū)域,其容量可達(dá)64 KB。堆棧操作按照先進(jìn)后出(FILO)的原則進(jìn)行,每次壓棧和出棧均以字為單位。堆棧的作
18、用: (1) 存放程序運(yùn)行過(guò)程中需要保護(hù)的數(shù)據(jù)。(2) 保護(hù)斷點(diǎn)和現(xiàn)場(chǎng)。堆棧操作用進(jìn)棧指令PUSH和出棧指令POP完成。38進(jìn)棧和出棧操作的過(guò)程 (a) 入棧前堆棧情況 (b) 入棧后指針變化情況 (c) 出棧后指針變化情況圖2.6 進(jìn)棧及出棧的操作過(guò)程392.3 8086/8088的引腳及功能 (a)8086 CPU的引腳 (b)8088 CPU的引腳圖2.7 8086/8088CPU的引腳408086/8088CPU采用5種方法定義引腳: 1) 同一時(shí)刻每個(gè)引腳只傳送一種信息(例: 等);2) 不同時(shí)刻,可以傳遞不同信號(hào),即分時(shí)復(fù)用引腳(例:AD7 AD0 等) ; 3) 引腳電平的高低電
19、平表示不同的信號(hào)(例: 等); 4) CPU工作于不同方式有不同的名稱(chēng)和定義(例:WR/LOCK 等);5) 引腳的輸入和輸出分別傳送不同的信號(hào)(例:30:RQ/GT:總線請(qǐng)求/總線響應(yīng)等)。418088CPU的引腳按功能分為五大類(lèi): 電源線和地線 地址/數(shù)據(jù)線 中斷請(qǐng)求和響應(yīng)引腳 總線保持引腳 控制/狀態(tài)引腳8088有兩種工作模式: 最小工作模式和最大工作模式421.8088最小工作模式下的引腳1) 電源線和地線(VCC 、GND) VCC(第40引腳):電源線,輸入,接+5V電源。GND(第1、20引腳):地線,輸入,兩條地線均接地。2) 地址/數(shù)據(jù)(狀態(tài))引腳(AD7AD0、A15A8、
20、A19/S6A16/S3) A15A8(第28、39引腳):地址線,輸出。AD7AD0(第916引腳):地址/數(shù)據(jù)分時(shí)復(fù)用引腳,傳送地址時(shí)單向輸出,傳送數(shù)據(jù)時(shí)雙向輸入或輸出。A19/S6A16/S3(第3538引腳):地址狀態(tài)分時(shí)復(fù)用引腳,輸出、三態(tài)總線。 433) 中斷請(qǐng)求和響應(yīng)信號(hào)(NMI、INTR、 )NMI(Non-Maskable Interrupt )(第17引腳): 非屏蔽中斷請(qǐng)求信號(hào),輸入,上升沿觸發(fā)。INTR(Interrupt Request)(第18引腳):可屏蔽中斷請(qǐng)求信號(hào),輸入,高電平有效。 (Interrupt Acknowledge)(第24引腳):輸出。對(duì)INT
21、R信號(hào)的中斷響應(yīng)信號(hào),低電平有效。該信號(hào)用于對(duì)外設(shè)的中斷請(qǐng)求(經(jīng)INTR引腳送入CPU)響應(yīng)。444) 總線保持信號(hào) (HOLD、HLDA)HOLD(Hold request)(第31引腳):總線保持請(qǐng)求信號(hào),輸入,高電平有效。HLDA(Hold Acknowledge)(第30引腳):總線保持響應(yīng)信號(hào),輸出,高電平有效。5) 控制和狀態(tài)引腳(CLK、RESET、READY、 、ALE、 等) CLK(Clock)(第19引腳):系統(tǒng)時(shí)鐘,輸入。RESET(第21引腳):復(fù)位信號(hào),輸入,高電平有效。READY(第22引腳):數(shù)據(jù)“準(zhǔn)備好”信號(hào)線,輸入,高電平有效。45 (第23引腳):等待測(cè)試
22、信號(hào),輸入。ALE(Address Latch Enable)(第25引腳):地址鎖存允許信號(hào),輸出,高電平有效。是8086/8088給地址鎖存器的控制信號(hào)。 (Data Enable)(第26引腳):數(shù)據(jù)允許信號(hào),輸出低電平有效。該信號(hào)決定數(shù)據(jù)總線上的數(shù)據(jù)是否有效。 (Data Transmit/Receive)(第27引腳):數(shù)據(jù)發(fā)送/接收信號(hào),輸出。該信號(hào)用來(lái)控制數(shù)據(jù)的傳送方向。 (Memory/Input and Output) (第28引腳):存儲(chǔ)器I/O端口控制信號(hào),輸出。該信號(hào)用來(lái)區(qū)分CPU是進(jìn)行存儲(chǔ)器訪問(wèn)還是I/O端口訪問(wèn)。 (Write)(第29引腳):寫(xiě)信號(hào),輸出,低電平有
23、效。46 (Read)(第32引腳):讀控制信號(hào),輸出,低電平有效。當(dāng)=0時(shí),表示CPCU正對(duì)存儲(chǔ)器或I/O端口的讀操作。 (Minimum/Maximum mode control)(第33引腳):最小/最大方式控制信號(hào),輸入。MN/MX引腳接高電平時(shí),8086/8088 CPU工作在最小方式;MN/MX引腳接低電平時(shí),8086/8088工作在最大方式。 (第34引腳):系統(tǒng)狀態(tài)信號(hào)輸出。與 信號(hào)和 信號(hào)一起用來(lái)決定最小模式下當(dāng)前總線周期的狀態(tài)。 472. 8088 最大工作模式下的引腳當(dāng)33號(hào)引腳時(shí),8088CPU工作在最大模式。最大模式和最小模式相比,除2434引腳外,其它引腳完全相同。
24、8088CPU在最大模式下的2434引腳: 、 、 (第2826引腳):狀態(tài)信號(hào)(輸出,三態(tài))。 48 (request/grant) (第3031引腳):請(qǐng)求/允許信號(hào)(輸入/輸出)。低電平有效,是最大組態(tài)下的DMA請(qǐng)求/允許信號(hào)。 (第29引腳):鎖定信號(hào)(輸出,三態(tài))。低電平有效。當(dāng)其有效時(shí),CPU控制總線,不允許別的總線設(shè)備取得對(duì)系統(tǒng)總線的控制權(quán)。QS1、QS0(queue status)(第2425引腳):隊(duì)列狀態(tài)信號(hào)(輸出)。用于提供8088指令隊(duì)列狀態(tài),根據(jù)狀態(tài)信號(hào),可以跟蹤C(jī)PU內(nèi)部的指令。HIGH(第34引腳),在最大模式下始終為高電平輸出。 (第32引腳):引腳在最大模式下
25、不再使用。493. 8086CPU與8088CPU的區(qū)別8086CPU與8088CPU的不同主要有4個(gè)方面。1)內(nèi)部結(jié)構(gòu)8086的指令隊(duì)列有6個(gè)字節(jié),而8088僅有4個(gè)字節(jié)。2)引出線和存儲(chǔ)器組織8086有一條高8位數(shù)據(jù)總線允許引出線 ,可以看作一條附加的地址線,訪問(wèn)存儲(chǔ)器的高字節(jié),A0用來(lái)訪問(wèn)存儲(chǔ)器的低字節(jié)。3)地址/數(shù)據(jù)復(fù)用線8086的地址/數(shù)據(jù)復(fù)用線是16位AD15AD0;8088有AD7AD0復(fù)用,A8A15僅作為地址線使用。4)存儲(chǔ)器與I/O接口選通信號(hào)電平存儲(chǔ)器與I/O接口選通信號(hào)電平不同:8086為 ;8088為 。502.4 8086/8088微處理器的時(shí)序2.4.1 時(shí)序的有
26、關(guān)概念 指令的執(zhí)行過(guò)程:取指令(fetch)、譯碼(decode)、執(zhí)行(execute) 時(shí)序: 8088 CPU 的EU和BIU在時(shí)鐘脈沖CLK的統(tǒng)一控制下執(zhí)行指令。 執(zhí)行時(shí)間的長(zhǎng)短可以用指令周期、總線周期、機(jī)器周期和時(shí)鐘周期來(lái)度量。51時(shí)鐘周期:又稱(chēng)為T(mén)周期或T狀態(tài),由時(shí)鐘發(fā)生器產(chǎn)生。時(shí)鐘周期是計(jì)算機(jī)內(nèi)部最小的時(shí)間單位,由計(jì)算機(jī)的主頻決定。機(jī)器周期:計(jì)算機(jī)完成一個(gè)基本操作所花費(fèi)的時(shí)間。機(jī)器周期一般有若干個(gè)時(shí)鐘周期組成,如圖2-8所示。52圖2-8 機(jī)器周期、時(shí)鐘周期的組成53總線周期:CPU訪問(wèn)(或讀寫(xiě))一次存儲(chǔ)器或I/O接口的時(shí)間叫一個(gè)總線周期(Bus Cycle)。8086/8088
27、CPU和外部交換信息是通過(guò)BIU總線接口單元來(lái)完成的,每當(dāng)CPU要從存儲(chǔ)器或I/O接口存取一個(gè)字節(jié)或字時(shí),就需要一個(gè)總線周期。8086/8088CPU的總線周期包含4個(gè)時(shí)鐘周期:T1、T2、T3、T4,如圖2.9所示。54圖2.9 典型的8086/8088總線周期序列55指令周期:執(zhí)行一條指令所需要的時(shí)間稱(chēng)為指令周期(instruction cycle)。指令周期包括取指令、譯碼和執(zhí)行指令等操作所需的所有時(shí)間。56指令周期、機(jī)器周期、總線周期和時(shí)鐘周期之間的關(guān)系:指令周期由若干個(gè)機(jī)器周期組成,機(jī)器周期時(shí)間包含若干個(gè)時(shí)鐘周期??偩€周期一般由4個(gè)時(shí)鐘周期組成。機(jī)器周期和總線周期的關(guān)系:機(jī)器周期有可
28、能包含總線讀寫(xiě),因而包含總線周期,有時(shí)可能與總線讀寫(xiě)無(wú)關(guān),所以,并無(wú)明確的相互包含關(guān)系。572.4.2 8086/8088CPU最小模式下的工作時(shí)序8086/8088CPU在與存儲(chǔ)器或I/O端口交換數(shù)據(jù)時(shí)需要啟動(dòng)一個(gè)總線周期。按照數(shù)據(jù)的傳送方向來(lái)分,總線周期可分為“讀”總線周期(CPU從存儲(chǔ)器或I/O端口讀取數(shù)據(jù))和“寫(xiě)”總線周期(CPU將數(shù)據(jù)寫(xiě)入存儲(chǔ)器或I/O端口)。 讀總線周期和寫(xiě)總線周期分別如圖2.10、圖2.11所示。58圖2.10 8088讀(M/IO)總線周期59圖2.11 8088寫(xiě)(M/IO)總線周期602.5 80X86微處理器簡(jiǎn)介80X86微處理器主要有80286、8038
29、6和80486,2.5.180286微處理器1)80286的特點(diǎn)與8086相比,80286有如下特點(diǎn):地址線24根,最多可尋址16M字節(jié)的實(shí)際存儲(chǔ)空間和64K的I/O地址空間。內(nèi)、外部數(shù)據(jù)傳輸均為16位。地址總線和數(shù)據(jù)總線完全分離,提高了數(shù)據(jù)訪問(wèn)的速度。80286工作于兩種方式:實(shí)模式和保護(hù)方式。612)80286的功能結(jié)構(gòu)80286內(nèi)部結(jié)構(gòu)由4個(gè)功能部件組成:執(zhí)行部件EU、指令部件IU、總線部件BU和地址部件AU。80286將8086/8088的BIU分為AU、IU和BU兩部分。通過(guò)4個(gè)部件的并行操作,進(jìn)一步提高了CPU的工作速度。623)80286的寄存器結(jié)構(gòu)80286的寄存器結(jié)構(gòu)的特點(diǎn):
30、通用寄存器為AX、BX、CX、DX,地址寄存器為SI、DI、BP、SP、IP,這8個(gè)寄存器與8086完全相同。段寄存器(CS、SS、DS、ES)擴(kuò)展為64位:段選擇器域(16位)、存取權(quán)域(8位)、基地址域(24位)和段界限域(16位)。擴(kuò)展了4個(gè)系統(tǒng)表寄存器:全局描述符表寄存器GDTR、局部描述符表寄存器、中斷描述符表寄存器IDTR和任務(wù)狀態(tài)段寄存器TR。 狀態(tài)控制寄存器新增為3個(gè):標(biāo)志寄存器PSW(新增3個(gè)有效位)、任務(wù)寄存器TR和新增的機(jī)器狀態(tài)字寄存器MSW。632.5.280386微處理器 Inter公司1985年推出特點(diǎn):是80X86系列中的第一種32位微處理器內(nèi)部含27.5萬(wàn)個(gè)晶體
31、管時(shí)鐘頻率為12.5MHz,后提高到20MHz、25MHz和33MHz。內(nèi)部和外部數(shù)據(jù)總線都是32位,地址總線32位,可尋址4GB內(nèi)存。除具有實(shí)模式和保護(hù)模式外,還增加了虛擬86的工作方式,可以通過(guò)同時(shí)模擬多個(gè)8086處理器來(lái)提供多任務(wù)能力。圖2.12 80386CPU芯片641988年:80386SX1990年:80386 SL和80386 DL 都是低功耗、節(jié)能型芯片,主要用于便攜機(jī)和節(jié)能型臺(tái)式機(jī)。都增加了系統(tǒng)管理方式(SMM)。進(jìn)入系統(tǒng)管理方式后,CPU就自動(dòng)降低運(yùn)行速度、控制顯示屏和硬盤(pán)等其它部件暫停工作,甚至停止運(yùn)行,進(jìn)入“休眠”狀態(tài),以達(dá)到節(jié)能目的。 652.5.3 80486微處
32、理器1. Intel 80486微處理器內(nèi)部結(jié)構(gòu)80486 CPU內(nèi)部組成: 總線接口部件、指令預(yù)取部件、指令譯碼部件、控制和保護(hù)測(cè)試單元部件、整數(shù)執(zhí)行部件、分段部件、分頁(yè)部件、浮點(diǎn)運(yùn)算部件、高速緩存(cache)管理部件66 1)總線接口部件 作用:管理訪問(wèn)外部存儲(chǔ)器和I/O端口的地址、數(shù)據(jù)和控制總線。對(duì)處理器內(nèi)部,BIU主要與指令預(yù)取部件和高速緩存部件交換信息,將預(yù)取指令存入指令代碼隊(duì)列。 BIU與cache部件交換數(shù)據(jù)的三種情況: 一.向高速緩沖存儲(chǔ)器填充數(shù)據(jù),BIU一次從片外總線讀取16個(gè)字節(jié)到cache;二.如果高速緩沖存儲(chǔ)器的內(nèi)容被處理器內(nèi)部操作修改了,則修改的內(nèi)容也由BIU寫(xiě)回到
33、外部存儲(chǔ)器中去;三.如果一個(gè)讀操作請(qǐng)求所要訪問(wèn)的存儲(chǔ)器操作數(shù)不在高速緩沖存儲(chǔ)器中,則這個(gè)讀操作便由BIU控制總線直接對(duì)外部存儲(chǔ)器進(jìn)行操作。 67在預(yù)取指令代碼時(shí),BIU把從外部存儲(chǔ)器取出的指令代碼同時(shí)傳送給代碼預(yù)取部件和內(nèi)部高速緩沖存儲(chǔ)器,以便在下一次預(yù)取相同的指令時(shí),可直接訪問(wèn)高速緩沖存儲(chǔ)器。 682)指令預(yù)取部件 作用:在總線空閑周期,指令預(yù)取部件(pre-fetcher)形成存儲(chǔ)器地址,并向BIU發(fā)出預(yù)取指令請(qǐng)求。 預(yù)取部件一次讀取16個(gè)字節(jié)的指令代碼存入預(yù)取隊(duì)列中,指令隊(duì)列遵循先進(jìn)先出FIFO(First In First Out)的規(guī)則,自動(dòng)地向輸出端移動(dòng)。693)指令譯碼部件 ID
34、U(Instruction Decode Unit)作用:從指令預(yù)取隊(duì)列中讀取指令并譯碼,將其轉(zhuǎn)換成相應(yīng)控制信號(hào)。譯碼過(guò)程分兩步: 首先確定指令執(zhí)行時(shí)是否需要訪問(wèn)存儲(chǔ)器,若需要?jiǎng)t立即產(chǎn)生總線訪問(wèn)周期,使存儲(chǔ)器操作數(shù)在指令譯碼后能準(zhǔn)備好; 然后產(chǎn)生對(duì)其他部件的控制信號(hào)。 704)控制和保護(hù)測(cè)試單元部件 控制部件CPTU(Control and Protection Test Unit)對(duì)整數(shù)執(zhí)行部件、浮點(diǎn)運(yùn)算部件和分段管理部件進(jìn)行控制,使它們執(zhí)行已譯碼的指令。 5)整數(shù)執(zhí)行部件 IU(Integer data-path Unit)包括四個(gè)32位通用寄存器、兩個(gè)32位間接尋址寄存器、兩個(gè)32位指針
35、寄存器、一個(gè)標(biāo)志寄存器、一個(gè)64位桶形移位寄存器和算術(shù)邏輯運(yùn)算單元等。能在一個(gè)時(shí)鐘周期內(nèi)完成整數(shù)的傳送、加減運(yùn)算、邏輯操作等。71 6)浮點(diǎn)運(yùn)算部件 FPU(Floating Point Unit)作用:用于完成浮點(diǎn)數(shù)運(yùn)算。 7)分段部件和分頁(yè)部件 80486 CPU設(shè)置了分段部件SU(Segmentation Unit)和分頁(yè)部件PU(Paging Unit),實(shí)現(xiàn)存儲(chǔ)器保護(hù)和虛擬存儲(chǔ)器管理。分段部件將邏輯地址轉(zhuǎn)換成線性地址,采用分段cache可以提高轉(zhuǎn)換速度。分頁(yè)部件用來(lái)完成虛擬存儲(chǔ),把分段部件形成的線性地址進(jìn)行分頁(yè),轉(zhuǎn)換成物理地址。728)Cache管理部件 80486 CPU內(nèi)部集成了
36、一個(gè)數(shù)據(jù)/指令混合型cache稱(chēng)為高速緩沖存儲(chǔ)器管理部件CU(Cache Unit)。在大多數(shù)的情況下,CPU都能在片內(nèi)cache中存取數(shù)據(jù)和指令,減少了CPU的訪問(wèn)時(shí)間。732. 80486微處理器的寄存器 按功能可分為四類(lèi):基本寄存器、系統(tǒng)寄存器、調(diào)試和測(cè)試寄存器以及浮點(diǎn)寄存器?;炯拇嫫靼ò藗€(gè)通用寄存器、一個(gè)指令指針寄存器EIP、一個(gè)標(biāo)志寄存器EFLAGS、和六個(gè)段寄存器。 通用寄存器:EAX, EBX, ECX, EDX, EBP, ESP, EDI、ESI。 指令指針寄存器EIP(Extra Instruction Pointer):存放指令的偏移地址。 標(biāo)志寄存器EFR(Extr
37、a Flags Register)包括狀態(tài)位、控制位和系統(tǒng)標(biāo)志位,用于指示微處理器的狀態(tài)并控制微處理器的操作。 段寄存器:CS, DS, ES, SS, FS和GS,分別存放段基址(實(shí)地址模式)或選擇符(保護(hù)模式),用于與微處理器中的其他寄存器聯(lián)合生成存儲(chǔ)器單元的物理地址。74習(xí) 題2.1簡(jiǎn)述8086的EU和BIU的功能及主要組成部分,并說(shuō)明在執(zhí)行指令時(shí)二者是如何配合工作的?2.28086/8088CPU有哪些寄存器?并說(shuō)明其主要作用。2.38086/8088CPU中標(biāo)志寄存器FLAGS有哪些標(biāo)志位?其含義和作用是什么?2.4邏輯地址和物理地址指的是什么?如果已知邏輯地址為2E00:5B2CH
38、,其物理地址為多少?2.5Inter8086CPU和8088CPU有哪些不同之處?2.6簡(jiǎn)要說(shuō)明8086/8088的指令周期、總線周期、機(jī)器周期和時(shí)鐘周期有何不同。2.7什么是最大模式?什么是最小模式?用什么方法將8086/8088置為最大模式和最小模式?2.88086/8088常見(jiàn)總線有哪些?2.980486微處理器包含哪些寄存器?各有什么主要用途?75答 案2.1執(zhí)行單元的組成:8個(gè)通用寄存器、算術(shù)邏輯單元(ALU)、標(biāo)志寄存器FLAGS、數(shù)據(jù)暫存寄存器、EU控制電路執(zhí)行單元EU的功能:負(fù)責(zé)執(zhí)行指令總線接口單元的組成: 4個(gè)段寄存器:CS、DS、SS和ES,IP ,地址加法器,指令隊(duì)列緩沖
39、器,總線控制電路??偩€接口單元的作用:負(fù)責(zé)從存儲(chǔ)器或I/O端口取指令、取操作數(shù)和保存運(yùn)算結(jié)果。76執(zhí)行單元總線接口單元的配合工作:EU和BIU并行工作,互不影響。當(dāng)EU從指令隊(duì)列中取走指令,BIU自動(dòng)取指令,讀入到指令隊(duì)列。如果EU執(zhí)行了跳轉(zhuǎn)、子程序調(diào)用或返回指令,BIU就使指令隊(duì)列復(fù)位,并從指令給出的新地址開(kāi)始取指令,再將新取的第一條指令直接經(jīng)指令隊(duì)列送EU執(zhí)行,隨后取來(lái)的指令送入指令隊(duì)列緩沖器。當(dāng)指令隊(duì)列空時(shí),EU就等待,直到有指令為止。若EU需要從內(nèi)存或外設(shè)端口讀取操作數(shù),BIU將根據(jù)EU給出的地址從內(nèi)存或外設(shè)端口讀取數(shù)據(jù)給EU。EU的運(yùn)算結(jié)果由BIU送往指定的內(nèi)存單元或外設(shè)端口。772
40、.2 8086/8088CPU內(nèi)部有14個(gè)16位的寄存器,按功能可分為:通用寄存器(8個(gè))、段寄存器(4個(gè))和控制寄存器(2個(gè))通用寄存器:數(shù)據(jù)寄存器:AX、BX、CX、DX。用來(lái)暫時(shí)存放參與運(yùn)算的操作數(shù)或中間運(yùn)算結(jié)果。地址指針寄存器:SP、BP。SP:在使用堆棧操作指令(PUSH或POP)對(duì)堆棧進(jìn)行操作時(shí),存放棧頂?shù)牡刂?。BP:存放數(shù)據(jù)或操作數(shù)在堆棧段內(nèi)的基地址。變址寄存器:SI、DI。通常用在字符串操作時(shí)存放操作數(shù)的偏移地址。段寄存器(4個(gè)):CS、DS、SS、ES 。存放邏輯段的段地址 控制寄存器:IP/F . IP:存放預(yù)取指令在代碼段內(nèi)的偏移地址。F(FLAGS)稱(chēng)為標(biāo)志寄存器, 7
41、82.3 6個(gè)狀態(tài)標(biāo)志位和3個(gè)控制標(biāo)志位。 狀態(tài)標(biāo)志位:反映算術(shù)和邏輯運(yùn)算結(jié)果的一些特征。CF(Carry Flag):進(jìn)位標(biāo)志位。進(jìn)行加減運(yùn)算時(shí),若最高位發(fā)生進(jìn)位或借位則CF1,否則CF0。PF(Parity Flag):奇偶標(biāo)志位。當(dāng)運(yùn)算結(jié)果的低8位中含有偶數(shù)個(gè)1時(shí),PF1,否則PF0。 AF(Auxiliary Flag):輔助進(jìn)位標(biāo)志位。加法或減法運(yùn)算時(shí),若結(jié)果的低字節(jié)的低4位向高4位有進(jìn)位或借位,則AF1,否則AF0。ZF(Zero Flag):零標(biāo)志位。若當(dāng)前的運(yùn)算結(jié)果為0,則ZF1,否則ZF0。SF(Sign Flag):符號(hào)標(biāo)志位。與運(yùn)算結(jié)果的最高位相同,當(dāng)運(yùn)算結(jié)果的最高位為1時(shí),SF=1,否則為0。OF(Overflow Flag):溢出標(biāo)志位。當(dāng)運(yùn)算結(jié)果超出了帶符號(hào)數(shù)的范圍,即溢出時(shí),OF=1,否則OF=0。控制標(biāo)志位:TF(Trap Flag):跟蹤標(biāo)志位。測(cè)試程序時(shí),若將TF=1,8086/8088CPU處于單步工作方式,否則,將正常執(zhí)行程序。IF(Interrupt Flag):中斷
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- SB/T 11235-2023人像攝影服務(wù)機(jī)構(gòu)誠(chéng)信評(píng)價(jià)規(guī)范
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)與服務(wù)全真模擬考試試卷A卷含答案
- 2025年軍隊(duì)文職人員招聘之軍隊(duì)文職管理學(xué)提升訓(xùn)練試卷B卷附答案
- 新泰數(shù)學(xué)初一試題及答案
- 安全防火知識(shí)培訓(xùn)課件
- 2025年黨史競(jìng)賽知識(shí)題庫(kù)50題及答案
- 監(jiān)理基礎(chǔ)知識(shí)培訓(xùn)課件
- 人工智能醫(yī)療輔助系統(tǒng)應(yīng)用及操作指南
- 唐宋八大家之一王安石介紹與作品欣賞教案
- 公司股份制改革法律文件匯編手冊(cè)
- 汽車(chē)電動(dòng)助力轉(zhuǎn)向系統(tǒng)發(fā)展綜述外文文獻(xiàn)翻譯、中英文翻譯、外文翻譯
- 有機(jī)合成中的合成子課件
- 混凝土澆筑技術(shù)交底全
- 數(shù)學(xué)建模的介紹教學(xué)課件
- 邏輯代數(shù)的基本定律和規(guī)則課件
- 【短視頻質(zhì)量對(duì)消費(fèi)者購(gòu)買(mǎi)行為的影響研究4300字(論文)】
- 茄子課件完整版
- 戰(zhàn)地衛(wèi)生與救護(hù)教案-模板
- 《中華民族大團(tuán)結(jié)》(初中) 第1課 愛(ài)我中華 教案
- 蘇科版五年級(jí)下冊(cè)勞動(dòng)第10課《便攜衣架》課件
- 2023年浙江農(nóng)林大學(xué)博士入學(xué)考試英語(yǔ)
評(píng)論
0/150
提交評(píng)論