匯編語言程序設(shè)計第2章課件_第1頁
匯編語言程序設(shè)計第2章課件_第2頁
匯編語言程序設(shè)計第2章課件_第3頁
匯編語言程序設(shè)計第2章課件_第4頁
匯編語言程序設(shè)計第2章課件_第5頁
已閱讀5頁,還剩135頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第2章 微處理器的結(jié)構(gòu)及存儲器組成第2章 微處理器的結(jié)構(gòu)及存儲器組成2.1 80 x86和和Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)2.2 存儲器的組織存儲器的組織第2章 微處理器的結(jié)構(gòu)及存儲器組成2.1 80 x86和和Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)2.1.1 80 x86和和Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu) 18086微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu) Intel8086(簡稱8086)是在Intel公司的8位微處理器8080與8085的基礎(chǔ)上發(fā)展起來的一種16位微處理器。它的內(nèi)部結(jié)構(gòu)是16位的,數(shù)據(jù)總線也是16條;它能處理16位數(shù)據(jù)(具有16位運算指令,包括乘法和除法指

2、令),同時也能處理8位數(shù)據(jù);它能執(zhí)行整套8080/8085的指令,所以它在匯編語言上與8080/8085是兼容的。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-1 8086的功能結(jié)構(gòu)存儲器接口ESCSSSDSIP4321執(zhí)行單元控制系統(tǒng)AHALBHBLCHCLDHDLSPBPSIDI標(biāo)志BIUC-BUSB-BUSEUALUA-BUS指令流字節(jié)排隊第2章 微處理器的結(jié)構(gòu)及存儲器組成 BIU負(fù)責(zé)與存儲器接口,即8086CPU與存儲器之間的信息傳送,都是由BIU進行的。具體地說,BIU負(fù)責(zé)從內(nèi)存的指定部分取出指令,送至指令流隊列中排隊,在執(zhí)行指令時所需的操作數(shù),也由BIU從內(nèi)存的指定區(qū)域取出,傳送給EU部

3、分去執(zhí)行。 EU部分負(fù)責(zé)指令的執(zhí)行,取指部分與執(zhí)行指令部分是分開的,于是在一條指令的執(zhí)行過程中,就可以取出下一條(或多條)指令,在指令流隊列中排隊。在一條指令執(zhí)行完以后就可以立即執(zhí)行下一條指令,減少了CPU為取指令而等待的時間,提高了CPU的利用率和執(zhí)行速度,降低了與之相配的存儲器對采樣速度的要求。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-2 8086的執(zhí)行方式取指取指取指取指取指得到數(shù)據(jù)取指等待執(zhí)行執(zhí)行執(zhí)行執(zhí)行BIUEU第2章 微處理器的結(jié)構(gòu)及存儲器組成 在8080與8085以及標(biāo)準(zhǔn)的8位微處理器中,程序的執(zhí)行是由取指和執(zhí)行指令的循環(huán)來完成的,執(zhí)行的順序為取第一條指令,執(zhí)行第一條指令;取第二條

4、指令,執(zhí)行第二條指令;直至取最后一條指令,執(zhí)行最后一條指令。這樣,在每一條指令執(zhí)行完以后,CPU必須等待,直到下一條指令取出來以后才能執(zhí)行。所以,它的工作順序如圖2-3所示。取指執(zhí)行取指執(zhí)行取指執(zhí)行時間圖2-3 一般8位機的執(zhí)行方式第2章 微處理器的結(jié)構(gòu)及存儲器組成 280486微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu) 80486是一種高性能全32位的微處理器。它把構(gòu)成80386微機系統(tǒng)的主處理器、數(shù)值協(xié)處理器和一個具有8 KB的Cache存儲器集成在一塊集成電路芯片中。沿用了指令流水線技術(shù),采用RISC思想設(shè)計,使用靜態(tài)高速RAM作為程序和數(shù)據(jù)共用的Cache,提高了存儲器的讀/寫速度,浮點運算部件FP

5、U集成在片內(nèi),提高了浮點運算的速度和能力,它支持多任務(wù)處理。第2章 微處理器的結(jié)構(gòu)及存儲器組成 80486微處理器的基本組成如圖2-4所示,包括總線接口部件、指令預(yù)取部件、指令譯碼部件、控制和保護部件、算術(shù)與邏輯運算部件、浮點運算部件FPU、分段部件、分頁部件和8 KB的Cache部件。這些部件可以獨立工作,也能與其他部件一起并行工作。在取指令和執(zhí)行指令時,每個部件完成一項任務(wù)或某一操作步驟,這樣既可同時對不同的指令進行操作,又可對同一指令的不同部分并行處理,即采用流水線工作方式。第2章 微處理器的結(jié)構(gòu)及存儲器組成 80486微處理器的特點有: (1) 浮點運算器FPU、8 KB程序與數(shù)據(jù)共用

6、Cache和主CPU集成在同一芯片中,減少了外部數(shù)據(jù)傳送環(huán)節(jié),提高了浮點運算及數(shù)據(jù)處理的能力、速度和可靠性。 (2) 把分段部件和分頁部件有機地結(jié)合在一起,建立起完整的存儲器管理與保護機構(gòu),為存儲器管理提供4級保護,對指令的執(zhí)行進行測試與監(jiān)督,保證指令的正確執(zhí)行。 (3) 采用RISC思想設(shè)計,使80486既帶有CISC類微處理器的特點,又具有RISC類微處理器的特色,與以往的CISC(80 x86)微處理器兼容。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (4) 在總線接口部件中設(shè)有成組控制和Cache控制部件,支持CPU在成組傳送周期幾乎以每個時鐘周期傳送一個字(2個字節(jié))的速度連續(xù)從主存或外部C

7、ache存儲器中選取指令和數(shù)據(jù),送入內(nèi)部Cache存儲器。另外還設(shè)有總線大小控制部件,控制傳送數(shù)據(jù)的寬度,同時提供數(shù)據(jù)傳送時的奇偶控制。為了使寬總線達(dá)到最佳使用效果,在系統(tǒng)總線接口部件中配有寫緩沖存儲器。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (5) 由預(yù)取部件負(fù)責(zé)從內(nèi)部Cache中取指令或數(shù)據(jù)。如果指令或數(shù)據(jù)不在內(nèi)部Cache中,則從主存中讀取,同時填入內(nèi)部Cache。預(yù)取部件的數(shù)據(jù)通路為16字節(jié)(128位),使指令碼和數(shù)據(jù)傳送速度加快。預(yù)取指令隊列為32字節(jié),可存放更多的指令代碼或數(shù)據(jù),從而有效地加快了指令執(zhí)行的速度。許多指令(如寄存器之間的數(shù)據(jù)傳送、加減運算等)可在一個時鐘周期內(nèi)完成。第2章

8、 微處理器的結(jié)構(gòu)及存儲器組成圖2-4 80486結(jié)構(gòu)邏輯圖32位基址/變址總線桶形移位器寄存器組ALU分段部件描述符寄存器界限和屬性PLA分頁部件TLBCache部件8 KB一體的Cache總線大小控制奇偶控制和產(chǎn)生地址驅(qū)動器寫緩存(4)數(shù)據(jù)總線收發(fā)器總線控制請求序列發(fā) 生 器成組控制Cache控制預(yù)取部件32字節(jié)代碼隊列EP寄存器組FPU控制ROM控 制 和保護部件指令譯碼20位物理地址頁屬性32位系統(tǒng)地址32位寫數(shù)據(jù)系統(tǒng)接口已譯碼的指令24位代碼流整數(shù)部件32位讀數(shù)據(jù)64位部件傳送總線微指令總線32位位移總線32位線性地址總線32位數(shù)據(jù)總線32位數(shù)據(jù)總線第2章 微處理器的結(jié)構(gòu)及存儲器組成

9、(6) 在內(nèi)部Cache和浮點運算器FPU之間的內(nèi)部通路采用64位(兩個32位)數(shù)據(jù)線,使浮點數(shù)據(jù)的傳送及運算速度加快。 (7) Cache采用“寫貫穿”(Write Through)方式,使寫入數(shù)據(jù)不僅寫入Cache存儲器,同時還要寫入主存儲器,保證了Cache與主存數(shù)據(jù)的一致性。 (8) 采用單倍頻時鐘,簡化了時鐘電路,提高了CPU的速度。 (9) 除了內(nèi)部Cache和FPU外,支持配置外部Cache和數(shù)值協(xié)處理器FPU,使系統(tǒng)的性能進一步提高。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (10) 在指令系統(tǒng)方面保持與80386兼容。除了包含80387的浮點運算指令外,還增加了6條新指令,即字節(jié)交

10、換指令BSWAP、交換并相加指令XADD、比較并交換指令CMPXCH和Cache指令I(lǐng)NVD、WBINVD、INVLPG。其中前3條可在系統(tǒng)軟件和應(yīng)用軟件中使用,增強數(shù)據(jù)運算與處理能力;后3條只能在系統(tǒng)軟件中使用,增強對內(nèi)部Cache和TLB的管理。第2章 微處理器的結(jié)構(gòu)及存儲器組成3Pentium微處理器的結(jié)構(gòu)微處理器的結(jié)構(gòu)圖2-5 Pentium體系結(jié)構(gòu)示意圖指令Cache整數(shù)單元分支預(yù)測預(yù)取指令緩沖器整數(shù)單元寄 存 器 組數(shù)據(jù)Cache64b總線接口流水線結(jié)構(gòu)的浮點單元MULADDDIV32 b32 b32 b64 b64 b64 b256 bUV第2章 微處理器的結(jié)構(gòu)及存儲器組成 1)

11、 超標(biāo)量流水線 超標(biāo)量流水線(Super Scalar)設(shè)計是Pentium處理器技術(shù)的核心。它由U和V兩條指令流水線構(gòu)成,如圖 2-6所示。每條流水線都擁有自己的ALU(算術(shù)邏輯單元)、地址生成電路和與數(shù)據(jù)Cache的接口。這種流水線結(jié)構(gòu)允許Pentium在單個時鐘周期內(nèi)執(zhí)行兩條整數(shù)指令,比相同頻率的486DX的CPU性能提高了一倍。 Pentium雙流水線中的每一條流水線分為5個步驟,即指令預(yù)取、指令解碼、地址生成、指令執(zhí)行、回寫。當(dāng)一條指令走過預(yù)取步驟,流水線就可以開始對另一條指令進行操作。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-6 Pentium超標(biāo)量流水線結(jié)構(gòu)U-流水線V-流水線U或

12、V流水線第2章 微處理器的結(jié)構(gòu)及存儲器組成 Pentium是雙流水線結(jié)構(gòu),可以一次執(zhí)行兩條指令,每條流水線執(zhí)行一個。這個過程稱為“指令并行”。在這種情況下,要求指令必須是簡單指令,且V-流水線總是接受U-流水線的下一條指令。例如,在下述4條指令中 MOV AX,5 INC BX MOV AX,5 INC AX 前兩條指令可以并行工作,而后兩條指令則不行,它會產(chǎn)生結(jié)果的沖突,因為后兩條指令都在對同一個寄存器AX進行操作。因而,Pentium的有效使用還必須借助于有適用的編譯工具,能產(chǎn)生盡量不沖突的指令序列。第2章 微處理器的結(jié)構(gòu)及存儲器組成 2) 獨立的指令Cache和數(shù)據(jù)Cache 80486

13、片內(nèi)有8 KB Cache,而Pentium則為兩個8 KB,一個作為指令Cache,另一個作為數(shù)據(jù)Cache,即雙路Cache結(jié)構(gòu),如圖2-7所示。圖2-7 Pentium雙路Cache結(jié)構(gòu)8 KB指令CacheTLB8 KB數(shù)據(jù)CacheTLB取指令U-流水線數(shù)據(jù)V-流水線數(shù)據(jù)32 b線寬無回寫32 b線寬有回寫第2章 微處理器的結(jié)構(gòu)及存儲器組成 圖中TLB的作用是將線性地址翻譯成物理地址。指令Cache和數(shù)據(jù)Cache采用328的線寬(80486DX為168線寬),是對Pentium 64 b總線的有力支持。 Pentium的數(shù)據(jù)Cache有兩個接口,分別通向U和V兩條流水線,以便能在相

14、同時刻向兩個獨立工作的流水線進行數(shù)據(jù)交換。當(dāng)向已被占滿的數(shù)據(jù)Cache寫數(shù)據(jù)時,將移走一部分當(dāng)前使用頻率最低的數(shù)據(jù),并同時將其寫回主存,這個技術(shù)稱為Cache回寫技術(shù)。由于處理器向Cache寫數(shù)據(jù)和將Cache釋放的數(shù)據(jù)寫回主存是同時進行的,所以,采用Cache回寫技術(shù)可大大節(jié)省處理時間。第2章 微處理器的結(jié)構(gòu)及存儲器組成 指令和數(shù)據(jù)分別使用不同的Cache,使Pentium的性能大大提高。例如,流水線的第一個步驟為指令預(yù)取,在這一步中,指令從指令Cache中取出來,如果指令和數(shù)據(jù)合用一個Cache,指令預(yù)取和數(shù)據(jù)操作之間很有可能發(fā)生沖突。提供兩個獨立的Cache則可避免這種沖突并允許兩個操作

15、的并發(fā)執(zhí)行。第2章 微處理器的結(jié)構(gòu)及存儲器組成 3) 浮點操作 Pentium的浮點單元流水分為8級,浮點操作的執(zhí)行過程分為8級流水,使每個時鐘周期能完成一個浮點操作,甚至在一個時鐘周期內(nèi)能完成兩個浮點操作。 浮點單元流水線的前4個步驟同整數(shù)流水線相同,后4個步驟的前兩步為二級浮點操作,后兩步為四舍五入及寫結(jié)果和出錯報告。Pentium的FPU對一些常用指令如ADD、MUL和LOAD等采用了新的算法,同時,用電路進行了固化,用硬件來實現(xiàn),提高了速度。第2章 微處理器的結(jié)構(gòu)及存儲器組成 4) 分支預(yù)測 循環(huán)操作在軟件設(shè)計中使用十分普遍,而每次循環(huán)中循環(huán)條件的判斷占用了大量的CPU時間。為此,Pe

16、ntium提供一個稱為分支目標(biāo)緩沖器BTB(Branch Target Buffer)的小Cache來動態(tài)地預(yù)測程序分支。當(dāng)一條指令導(dǎo)致程序分支時,BTB記住這條指令和分支目標(biāo)的地址,并用這些信息預(yù)測這條指令再次產(chǎn)生分支時的路徑,預(yù)先從此處預(yù)取,保證流水線的指令預(yù)取步驟不會空置。BTB機制如圖2-8所示。 當(dāng)BTB判斷正確時,分支程序即刻得到解碼。從循環(huán)程序來看,在進入循環(huán)和退出循環(huán)時,BTB會發(fā)生判斷錯誤,需重新計算分支地址。第2章 微處理器的結(jié)構(gòu)及存儲器組成 在Pentium中,常用指令如MOV、INC、DEC、PUSH、POP、JMP、CALL(near)、NOP、SHIFT、NOT和T

17、EST等改用硬件實現(xiàn),不再使用微碼操作,使指令的運行得到進一步加快。而其他的微碼指令由于運行于雙流水線上,速度也得到了提高。第2章 微處理器的結(jié)構(gòu)及存儲器組成指令Cache指令預(yù)取指令解碼BTB圖2-8 Pentium的BTB機制 第2章 微處理器的結(jié)構(gòu)及存儲器組成2.1.2 80 x86和和Pentium微處理器的寄存器結(jié)構(gòu)微處理器的寄存器結(jié)構(gòu) 18086微處理器的寄存器結(jié)構(gòu)微處理器的寄存器結(jié)構(gòu) 8086的寄存器結(jié)構(gòu)如圖2-9所示。它能處理16位數(shù),AX、BX、CX和DX這4個寄存器均是16位的數(shù)據(jù)寄存器,用以暫存16位的操作數(shù)。其中AX為累加器,其他3個16位寄存器用以存放操作數(shù),通常的用

18、途如表2-1所示。第2章 微處理器的結(jié)構(gòu)及存儲器組成AHALBHBLCHCLDHDLSPAXBXCXDXBPSIDIIPFLAGHFLAGLCSDSSSES(SP)(PC)(PSW)累加器基 數(shù)計 數(shù)數(shù) 據(jù)堆棧指針基數(shù)指針源變址目的變址指令指針狀態(tài)標(biāo)志代碼分段數(shù)據(jù)分段堆棧分段附加分段控制寄存器段寄存器數(shù) 據(jù)寄存器指 針寄存器變 址寄存器通 用寄存器O DITSZAPC15870(a)(b)(A)(HL)(BC)(DE)圖2-9 8086的寄存器結(jié)構(gòu)第2章 微處理器的結(jié)構(gòu)及存儲器組成表表2-1 8086通用寄存器的用法通用寄存器的用法寄存器通常用途AX字乘法、字除法、字I/OAL字節(jié)乘法、字節(jié)除

19、法、字節(jié)I/O、轉(zhuǎn)移、十進制算術(shù)運算AH字節(jié)乘法、字節(jié)除法BX轉(zhuǎn)移CX串操作、循環(huán)次數(shù)CL變量移位或循環(huán)DX字乘法、字除法、間接I/O第2章 微處理器的結(jié)構(gòu)及存儲器組成 8086也能處理8位數(shù)。圖2-9中的4個16位數(shù)據(jù)寄存器也可作為8個8位寄存器使用。 8086中有4個16位的段寄存器,即CS(Code Segment Register)、DS(Data Segment Register)、SS(Stack Segment Register)、ES(Extra Segment Register),使8086能在1 MB的范圍內(nèi)對內(nèi)存進行尋址。8086中的堆棧指針SP(Stack Pointe

20、r)用于確定在堆棧操作時,堆棧在內(nèi)存中的位置。但在8086中SP還必須與SS(堆棧段寄存器)一起才能確定堆棧的實際位置。第2章 微處理器的結(jié)構(gòu)及存儲器組成 在8086中有3個16位寄存器,BP(Base Pointer Register)、SI(Source Index Register)和DI(Destination Index Register),尋址方式較多,尋找操作數(shù)靈活、方便。 8086中的指令指針I(yè)P(Instruction Pointer)是指向下一次要取出的指令,與CS寄存器相配合才能形成真正的物理地址。 8086有一個狀態(tài)標(biāo)志寄存器,如圖2-9(b)所示。第2章 微處理器的結(jié)

21、構(gòu)及存儲器組成 280 x86和和Pentium微處理器的寄存器結(jié)構(gòu)微處理器的寄存器結(jié)構(gòu) 80 x86和Pentium微處理器的寄存器可以分為基本體系結(jié)構(gòu)寄存器、系統(tǒng)級寄存器和調(diào)試與測試寄存器3類。其中基本體系結(jié)構(gòu)寄存器和浮點寄存器應(yīng)用程序可以直接訪問,一般稱作程序可見寄存器。其他寄存器在應(yīng)用程序設(shè)計期間不能直接尋址,只有特權(quán)級為0級的程序才可以使用它們,一般稱為程序不可見寄存器。 80486和Pentium微處理器中包含的寄存器有8種:通用寄存器,段寄存器,指令指針寄存器,狀態(tài)標(biāo)志寄存器,控制寄存器,系統(tǒng)地址寄存器,調(diào)試與測試寄存器和浮點寄存器。第2章 微處理器的結(jié)構(gòu)及存儲器組成 1) 通用

22、寄存器 通用寄存器共有8個,如圖2-10所示。其中EAX、EBX、ECX和EDX可作為8位、16位或32位寄存器使用,ESI、EDI、EBP、ESP可作為16位或32位寄存器使用,作用如下:EAX:常用作累加器;EBX:常用作基址寄存器;ECX:常用作計數(shù)器;EDX:常用作數(shù)據(jù)寄存器;ESI:常用作源變址寄存器;EDI:常用作目的變址寄存器;EBP:常用作基址寄存器;ESP:常用作堆棧指針寄存器。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-10 80486通用寄存器SIAHBHCHDHABCDXXXXALBLCLDLDIBPSPEAXEBXECXEDXESIEDIEBPESP3116 15870第

23、2章 微處理器的結(jié)構(gòu)及存儲器組成 2) 段寄存器 段寄存器有6個,每個16位,其中CS、DS、SS分別作為指令代碼段、數(shù)據(jù)段和堆棧段寄存器,ES、FS和GS作為附加數(shù)據(jù)段寄存器。在實地址方式和虛擬8086方式下分別存放相應(yīng)段的基地址;在保護方式下作為選擇器,存放相應(yīng)的選擇符,如圖2-11所示。每個段寄存器對應(yīng)一個隱含不可訪問的段描述符寄存器,存放由選擇符尋址的描述符。選擇符的高13位是段描述符表的地址(簡稱選擇碼),低3位表示段描述符的類型和特權(quán)標(biāo)志。段選擇符與段描述符寄存器如圖2-12所示。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-11 80486段寄存器 代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器

24、附加段寄存器附加段寄存器附加段寄存器第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-12 段寄存器與段描述符高速緩沖寄存器選擇符選擇符選擇符選擇符選擇符選擇符段寄存器CSSSDSESFSGS物理基地址 段界限段說明符段描述符高速緩沖寄存器第2章 微處理器的結(jié)構(gòu)及存儲器組成 3) 指令指針寄存器 指令指針寄存器是一個32位的寄存器,如圖2-13所示,用來存放當(dāng)前代碼段中下一條要執(zhí)行指令的偏移量(或稱偏移地址)。在實地址方式和虛擬8086方式下,作為16位指針寄存器使用;在保護方式下,作為32位指針寄存器使用。 IP31 16 15 0圖2-13 80486指令指針寄存器第2章 微處理器的結(jié)構(gòu)及存儲器組成

25、 4) 狀態(tài)標(biāo)志寄存器 狀態(tài)標(biāo)志寄存器是一個32位的寄存器,實際使用了15位,用來存放微處理器的狀態(tài)標(biāo)志和控制標(biāo)志。其中部分標(biāo)志供系統(tǒng)使用,因此也稱為系統(tǒng)標(biāo)志。各位的符號如圖2-14所示。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-14 80486狀態(tài)標(biāo)志寄存器第2章 微處理器的結(jié)構(gòu)及存儲器組成 FLAGS是16位標(biāo)志寄存器,由EFLAGS中的D15D0組成,其中包含了兩種標(biāo)志:狀態(tài)標(biāo)志(S)、控制標(biāo)志(C)。SF、ZF、PF、CF、AF和OF組成了狀態(tài)標(biāo)志,控制標(biāo)志由DF、IF和TF構(gòu)成。EFLAGS是32位標(biāo)志寄存器,其中包含了3種標(biāo)志:狀態(tài)標(biāo)志(S)、控制標(biāo)志(C)和系統(tǒng)標(biāo)志(X)。狀態(tài)標(biāo)志

26、報告算術(shù)/邏輯運算指令執(zhí)行后的狀態(tài);控制標(biāo)志僅含一個標(biāo)志DF,用于控制串操作指令的地址改變方向;系統(tǒng)標(biāo)志用于控制I/O、屏蔽中斷、調(diào)試、任務(wù)轉(zhuǎn)換和控制保護方式與虛擬8086方式間的轉(zhuǎn)換。 第2章 微處理器的結(jié)構(gòu)及存儲器組成 圖2-14給出了EFLAGS各位的標(biāo)志名,共定義了15位14種標(biāo)志。其中CF、PF、AF、ZF、SF、TF、IF、DF、OF屬于8086的標(biāo)志位; LF、RF是80286新增的標(biāo)志位;VM是80386新增的;AC則是80486新增的。各個標(biāo)志位的功能分述如下: (1) 輔助進位標(biāo)志AF(Auxitiary Carry Flag)。在字節(jié)操作時,由低半字節(jié)(一個字節(jié)的低4位)

27、向高半字節(jié)(一個字節(jié)的高4位)進位或借位;在字操作時,低位字節(jié)向高位字節(jié)有進位或借位,則AF=1 ,否則為0。這個標(biāo)志用于十進制算術(shù)運算指令中。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (2) 進位標(biāo)志CF(Carry Flag)。當(dāng)結(jié)果的最高位(字節(jié)操作時的D7或字操作時的D15)產(chǎn)生一個進位或借位,則CF=1,否則CF=0。這個標(biāo)志主要用于多字節(jié)數(shù)的加、減法運算。移位和循環(huán)移位指令也能夠把存儲器或寄存器中的最高位(左移時)或最低位(右移時)放入標(biāo)志CF中。 (3) 溢出標(biāo)志OF(Overflow Flag)。在算術(shù)運算中,帶符號數(shù)的運算結(jié)果超出了8位或16位(帶符號數(shù)能表達(dá)的范圍),即在字節(jié)運算

28、時結(jié)果大于 +127或結(jié)果小于 -128,在字運算時結(jié)果大于32 767或結(jié)果小于 -32 768,此標(biāo)志置位。第2章 微處理器的結(jié)構(gòu)及存儲器組成 溢出和進位是兩個不同性質(zhì)的標(biāo)志,千萬不能混淆了。例如,在字節(jié)運算中 MOV AL,64H ADD AL,64H即 01100100 + 01100100 11001000 D7位向前無進位,故運算后CF=0;但運算結(jié)果超過了+127,此時,溢出標(biāo)志OF=1。又例如,在字節(jié)運算中 MOV AL,0ABH ADD AL,0FFH即 10101011 (-85) +11111111 (-1) 1 10101010第2章 微處理器的結(jié)構(gòu)及存儲器組成 D7位

29、向前有進位,故運算后CF=1;但運算的結(jié)果又不小于-128,此時,溢出標(biāo)志OF=0。在字運算中 MOV AX,0064H ADD AX,0064H即 00000 + 00000 00000D15位未產(chǎn)生進位,故CF=0;運算結(jié)果未超過+32767,故OF=0。 第2章 微處理器的結(jié)構(gòu)及存儲器組成但若有 MOV AX,6400H ADD AX,6400H即 01100100 00000000 +01100100 00000000 11001 第2章 微處理器的結(jié)構(gòu)及存儲器組成 D15位未產(chǎn)生進位,故CF=0,但運算結(jié)果超過了+32767,故OF=1。又例如: MOV AX,0AB00H ADD

30、AX,0FFFFH即: 10101011 00000000 + 11111111 11111111 110101010 11111111D15位產(chǎn)生進位,故CF=1,但運算結(jié)果不小于-32 768,故OF=0。 第2章 微處理器的結(jié)構(gòu)及存儲器組成 (4) 符號標(biāo)志SF(Sign Flag)。它的值與運算結(jié)果的最高位相同。即結(jié)果的最高位(字節(jié)操作時為D7,字操作時為D15)為1,則SF=1;否則SF0。由于在80X86中符號數(shù)是用補碼表示的,所以SF表示了結(jié)果的符號,SF=0為正,SF=1為負(fù)。 (5) 奇偶標(biāo)志PF(Parity F1ag)。若操作結(jié)果中“1”的個數(shù)為偶數(shù),則PF=1,否則PF

31、=0。這個標(biāo)志可用于檢查在數(shù)據(jù)傳送過程中是否發(fā)生錯誤。 (6) 零標(biāo)志ZF(Zero Flag)。若運算的結(jié)果為0,則ZF=1,否則ZF=0。80 x86還提供了三個控制標(biāo)志,它們能由程序來置位和復(fù)位,以變更對處理器的操作。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (7) 方向標(biāo)志DF(Direction Flag)。若用指令置OF=1,則引起串操作指令為自動減量指令,也就是從高地址到低地址處理字符串;若使OF=0,則串操作指令就為自動增量指令,也就是從低地址到高地址處理字符串。 (8) 中斷允許標(biāo)志IF(Interrupt-enable Flag)。若指令中置IF=1,則允許CPU去接收外部的可屏

32、蔽中斷請求;若使IF=0,則屏蔽上述的中斷請求,對內(nèi)部產(chǎn)生的中斷不起作用。 (9) 追蹤標(biāo)志TF(Trap Flag)。置TF標(biāo)志,使處理進入單步方式,以便于調(diào)試。在這個方式中,CPU在每條指令執(zhí)行以后,產(chǎn)生一個內(nèi)部中斷,允許程序在每條指令執(zhí)行以后進行檢查。 第2章 微處理器的結(jié)構(gòu)及存儲器組成 (10) 特權(quán)級標(biāo)志IOPL是狀態(tài)標(biāo)志寄存器中的D13和D12位。其表示03級的4個I/O特權(quán)級,用于保護方式。只有當(dāng)任務(wù)的現(xiàn)行特權(quán)級高于或等于IOPL時(0級最高,3級最低),執(zhí)行I/O指令才能保證不產(chǎn)生異常。 (11) 任務(wù)嵌套標(biāo)志NT是狀態(tài)標(biāo)志寄存器中的D14位。80486/80386/80286

33、的中斷和CALL指令可以引起任務(wù)轉(zhuǎn)換。NT1表示引起了任務(wù)轉(zhuǎn)換,當(dāng)前任務(wù)嵌套在另一任務(wù)內(nèi),這樣,在執(zhí)行IRET指令時,便返回父任務(wù);NT=0表示沒引起任務(wù)轉(zhuǎn)換,執(zhí)行IRET時是進行同任務(wù)內(nèi)的返回,而不發(fā)生任務(wù)轉(zhuǎn)換。該標(biāo)志位用來控制被中斷的鏈和被調(diào)用的任務(wù)。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (12) 恢復(fù)標(biāo)志RF是狀態(tài)標(biāo)志寄存器中的D16位。該標(biāo)志與調(diào)試寄存器的代碼斷點結(jié)合使用,以保證不重復(fù)處理斷點。RF1時,即使遇到斷點或調(diào)試故障也不產(chǎn)生異常中斷。在成功地執(zhí)行每條指令后,RF將自動復(fù)位。80486在響應(yīng)“斷點異?!?中斷)時,先將RF位置1,然后將EFLAGS壓棧;在斷點處理程序結(jié)束處,IR

34、ET指令將彈出具有RF1的EFLAGS,恢復(fù)程序在斷點位置的執(zhí)行,從而保證了代碼在斷點只執(zhí)行一次。 (13) 虛擬8086模式標(biāo)志VM是狀態(tài)標(biāo)志寄存器中的D17位。VM1表示工作在虛擬8086方式。該位只能以兩種方式來設(shè)置,在保護方式下,由最高特權(quán)級(0級)的代碼段的IRET指令來設(shè)置,或者由任務(wù)轉(zhuǎn)換來設(shè)置。 第2章 微處理器的結(jié)構(gòu)及存儲器組成 (14) 對準(zhǔn)檢查標(biāo)志AC是狀態(tài)標(biāo)志寄存器中的D18位。該位僅對80486有效。AC1且CR0的AM位也為1,則進行字、雙字或四字的對準(zhǔn)檢查。若處理器發(fā)現(xiàn)在訪問內(nèi)存時操作數(shù)未按邊界對準(zhǔn)(所謂對準(zhǔn),是指訪問字操作數(shù)時從偶地址開始,訪問雙字?jǐn)?shù)據(jù)時從4的整數(shù)

35、倍地址開始,訪問4字?jǐn)?shù)據(jù)時從8的整數(shù)倍地址開始),則發(fā)生異常。對80386,AC位恒為0,不進行對準(zhǔn)檢查。 EFLAGS的低16位含有80286的全部標(biāo)志,稱為FLAGS標(biāo)志寄存器。它對于執(zhí)行8086/80286的代碼是很有用的。 第2章 微處理器的結(jié)構(gòu)及存儲器組成 5) 控制寄存器 控制寄存器為CR0CR3共有4個,各32位,用來存放全局性與任務(wù)無關(guān)的機器狀態(tài),其標(biāo)志符號如圖2-15所示。與80386相比,80486的CR0增加了NE、WP、AM、NW和CD,CR3增加了PWT和PCD。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-15 80486控制寄存器PGCDNWAMWPNEETTSEMMP

36、PE0123451512 11161718293031保 留頁故障線性地址寄存器PCDPWT保 留頁目錄基址寄存器CR0CR1CR2CR3第2章 微處理器的結(jié)構(gòu)及存儲器組成 (1) CR0用來存放系統(tǒng)控制標(biāo)志或表示處理器的狀態(tài),定義了11位,其功能是: PE:保護方式允許位。置1,進入保護方式;清0,進入實地址方式。 MP:監(jiān)控協(xié)處理器位。置1,表示有協(xié)處理器。若在80486系統(tǒng)中運行80286或80386程序,該位置1;若運行80486程序,該位清0。 EM:模擬協(xié)處理器位。該位為1,表示軟件模擬協(xié)處理器,這時若使用協(xié)處理器指令將產(chǎn)生協(xié)處理器無效異常中斷;該位為,允許協(xié)處理器指令使用實際的協(xié)

37、處理器。在運行80286或80386程序時,該位置1;在80486SX系統(tǒng)中該位也必須置1。第2章 微處理器的結(jié)構(gòu)及存儲器組成 TS:任務(wù)切換位。每次任務(wù)轉(zhuǎn)換,該位置1。在解釋浮點算術(shù)運算指令時,對該位進行測試。清除任務(wù)切換標(biāo)志指令CLTS可將該位清0。 ET:處理器擴展類型標(biāo)志。該位置1,表示配置80387;否則表示未配置。 NE:數(shù)值異常事故位。該位用來控制浮點運算中未被屏蔽的異常故障。該位置1,允許報告浮點數(shù)值錯;該位清0且IGNNE輸入有效,則不予以報告。當(dāng)NE清0且IGNNE輸入無效時,數(shù)值錯將會使處理器停止運行,并等待一次中斷。第2章 微處理器的結(jié)構(gòu)及存儲器組成 WP:寫保護位。該

38、位用來凈化80486的頁寫保護機構(gòu),即保護用戶級的那些頁。該位置1,禁止管理級的寫操作寫入用戶級的頁上;該位清0,管理級可向用戶級的頁進行寫入。 AM:對準(zhǔn)屏蔽位。該位與狀態(tài)標(biāo)志AC配合使用,控制對數(shù)據(jù)的對準(zhǔn)校驗。該位置1且AC也置1時,對用戶級(CPL3)訪問的存儲器單元進行對準(zhǔn)校驗,即邊界檢查,否則不校驗。第2章 微處理器的結(jié)構(gòu)及存儲器組成 NW:不透明寫位。該位也稱為不是寫貫穿,用來控制Cache操作。該位清0,所有命中Cache的寫操作將按寫貫穿方式寫入Cache,同時寫入主存;該位置1且CD位也置1,只寫入Cache存儲器,而不寫入主存。 CD:允許Cache位。該位用來控制是否使用

39、片內(nèi)Cache。該位清0,允許使用內(nèi)部Cache,這時若不命中,可對片內(nèi)Cache存儲器填充寫入;該位置1,又不命中Cache時不能對Cache填充寫入。若訪問Cache命中,則Cache正常運行;若要徹底禁止Cache,可用專門的指令I(lǐng)NVD或WBINVD對片內(nèi)Cache刷新。刷新就是使片內(nèi)Cache中的所有數(shù)據(jù)無效即清0。 PG:允許分頁位。該位置1,允許分頁;該位清0,禁止分頁。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (2) CR1未用。 (3) CR2為頁故障線性地址寄存器,用來保存最后出現(xiàn)頁故障的32位線性地址。只有當(dāng)CR0中的PG位為1時,CR2才有意義。 (4) CR3為頁目錄基址寄

40、存器。其中高20位存放頁目錄表的物理基地址。在低12位中用2位作為標(biāo)志位,其余10位未用。標(biāo)志位的作用是:第2章 微處理器的結(jié)構(gòu)及存儲器組成 PCD:禁止頁高速緩沖位。該位置1,不對頁進行高速緩沖操作。在不分頁情況下的總線周期,該信號由PCD引腳輸出,控制外部二級Cache的高速緩沖操作。 PWT:寫貫穿位。在80486內(nèi)部Cache中使用的是“寫貫穿”方式,而外部二級Cache有的使用“寫貫穿”方式,有的既可使用“寫貫穿”方式又可使用“寫回”方式。PWT1,使片外二級Cache采用“寫貫穿”方式,否則采用“寫回”方式。 “寫貫穿”就是向Cache寫入數(shù)據(jù)的同時,也寫入到主存中;“寫回”是只有

41、當(dāng)Cache中的某一存儲塊被刷新時,才把這一存儲塊寫回到主存中去。第2章 微處理器的結(jié)構(gòu)及存儲器組成 6) 系統(tǒng)地址寄存器 在80486微處理器中設(shè)置了4個系統(tǒng)地址寄存器,如圖2-16所示。其作用也與80386基本相同,用來在保護方式下管理4個系統(tǒng)表,即引用80486在保護方式下所需要的段表信息。由于只能在保護方式下使用,因此又稱為保護方式寄存器。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-16 80486系統(tǒng)地址寄存器32位線性基地址4716 15界限值0GDTRIDTR1516位選擇符 0選擇器32位線性基地址界限值 屬性說明符描述符高速緩沖寄存器(自動裝入)TRLDTR第2章 微處理器的結(jié)構(gòu)

42、及存儲器組成 (1) 全局描述符表寄存器GDTR,一個48位寄存器,用來存放全局描述符表GDT的32位線性基地址和16位的界限值,在全局描述符表中不僅包括有操作系統(tǒng)使用的描述符,而且還有所有任務(wù)使用的公用描述符。 (2) 中斷描述符表寄存器IDTR,一個48位寄存器,用來存放中斷描述符表IDT的32位線性基地址和16位的界限值。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (3) 局部描述符表寄存器LDTR,一個16位寄存器,用來存放局部描述符表LDT的16位選擇符。另外還有一個隱含的描述符高速緩沖寄存器,用來存放LDT表描述符。 (4) 任務(wù)狀態(tài)寄存器TR,一個16位寄存器,用來存放任務(wù)狀態(tài)段TSS的

43、16位選擇符。與之相應(yīng),也有一個隱含的描述符高速緩沖寄存器,用來存放任務(wù)狀態(tài)段TSS的描述符。第2章 微處理器的結(jié)構(gòu)及存儲器組成 7) 調(diào)試與測試寄存器 (1) 調(diào)試寄存器。該類寄存器有8個,各32位,如圖2-17(a)所示,表示為DR0DR7。其中DR0DR3用作線性斷點地址寄存器,可保存4個斷點地址,DR6用作斷點狀態(tài)寄存器,用來設(shè)置若干個狀態(tài)標(biāo)志,其中低4位分別表示4個斷點處的調(diào)試狀態(tài)。若進入調(diào)試狀態(tài),由硬件置1;退出調(diào)試狀態(tài)時應(yīng)由軟件清0。另外還有3位,即BT、BS和BD,其中BT是與任務(wù)狀態(tài)段中調(diào)試自陷位T相關(guān)的狀態(tài)標(biāo)志位,BS是與狀態(tài)標(biāo)志寄存器中的自陷標(biāo)志TF相關(guān)的狀態(tài)標(biāo)志位,BD

44、是當(dāng)內(nèi)部電路仿真使用的下一條指令對8個調(diào)試寄存器中的任一個進行讀/寫時,置1。DR7是斷點控制寄存器,用來設(shè)置控制標(biāo)志、控制斷點的設(shè)置、設(shè)置條件、斷點地址的有效范圍以及是否進入異常中斷等。DR4DR5為Intel公司保留。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-17 調(diào)試與測試寄存器(a) 調(diào)試寄存器;(b) 調(diào)試與測試寄存器線性斷點地址 0線性斷點地址 1線性斷點地址 2線性斷點地址 3Intel保留Intel保留斷點狀態(tài)斷點控制031DR0DR1DR2DR3DR4DR5DR6DR7Cache測試控制031Cache測試數(shù)據(jù)Cache測試狀態(tài)TLB測試控制TLB測試狀態(tài)TR3TR4TR5TR

45、6TR7(a)(b)第2章 微處理器的結(jié)構(gòu)及存儲器組成 (2) 測試寄存器。該類寄存器有4個,各32位,如圖2-17(b)所示,表示為TR3TR7。其中TR3TR5用于片內(nèi)Cache測試。TR6TR7用來控制分頁部件中的轉(zhuǎn)換旁視緩沖存儲器TLB的工作。TR6作為測試命令寄存器,用來存放測試控制命令,TR7作為數(shù)據(jù)寄存器,用來存放轉(zhuǎn)換旁視緩沖存儲器測試的數(shù)據(jù)。第2章 微處理器的結(jié)構(gòu)及存儲器組成 8) 浮點寄存器 80486微處理器內(nèi)部的浮點運算器是用于浮點運算的,其內(nèi)部設(shè)有相應(yīng)的寄存器,包括8個80位通用數(shù)據(jù)寄存器,一個48位指令指針寄存器、一個48位數(shù)據(jù)指針寄存器,一個16位控制字寄存器,一個

46、16位狀態(tài)字寄存器和一個16位標(biāo)記字寄存器。第2章 微處理器的結(jié)構(gòu)及存儲器組成 3總線接口部件總線接口部件 總線接口部件用來與外部主存、外圍設(shè)備等部件進行數(shù)據(jù)傳送。80486微處理器內(nèi)部設(shè)有高速算術(shù)/邏輯運算器、浮點運算器和Cache存儲器,配置了外部Cache,這就要求其能與外存、外設(shè)高速成批地進行數(shù)據(jù)傳送,故此對總線接口部件的功能有更高的要求。它在內(nèi)部通過3條32位總線與內(nèi)部Cache和指令預(yù)取部件連接;在外部通過多種電路與系統(tǒng)總線連接,根據(jù)優(yōu)先級別協(xié)調(diào)數(shù)據(jù)輸入/輸出、指令預(yù)取、Cache行的填充等工作。為了支持片內(nèi)Cache的連貫性,配置了總線監(jiān)視功能。總線接口部件中各部分的功能是:第2

47、章 微處理器的結(jié)構(gòu)及存儲器組成 (1) 總線大小(也稱為寬度)控制。用來控制數(shù)據(jù)總線的位數(shù),即按32位、16位或8位進行數(shù)據(jù)傳送。 (2) 奇偶校驗控制。數(shù)據(jù)傳送時進行奇偶校驗,寫操作時產(chǎn)生偶校驗,讀操作時實施偶校驗。如果出錯,給出錯誤信息。 (3) 地址驅(qū)動器。提供所有地址信號A31A2和字節(jié)允許信號BE3BE0的功率驅(qū)動,其中高28位地址為雙向信號。 (4) 寫緩沖存儲器。由于外部數(shù)據(jù)線是32位,為了傳送可靠,在接口部件中設(shè)有緩沖存儲器,以等待總線全部空閑時再進行寫入操作。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (5) 數(shù)據(jù)總線收發(fā)器。為32位,用來控制總線數(shù)據(jù)的接收與發(fā)送。 (6) 總線請求

48、序列發(fā)生器。也就是總線周期與總線控制電路,用來產(chǎn)生總線周期的時序及控制信號。其中包括成組和非成組傳送、總線請求仲裁、浮點運算、中斷以及復(fù)位等操作所需要的定時控制信號。 (7) 成組傳送控制。用來控制內(nèi)部Cache等部件與外部主存之間的成批數(shù)據(jù)傳送。 (8) Cache控制。Cache控制電路與成批傳送控制配合,對系統(tǒng)Cache存儲器實施控制。第2章 微處理器的結(jié)構(gòu)及存儲器組成 4標(biāo)志操作指令標(biāo)志操作指令 80 x86中有一部分指令是專門對標(biāo)志寄存器或標(biāo)志位進行操作的。包括四條標(biāo)志寄存器傳送指令和標(biāo)志位操作指令。 1) 標(biāo)志寄存器傳送指令 (1) LAHF(Load AH with Flags)

49、 格式:LAHF 功能:把標(biāo)志寄存器的低8位(包括符號標(biāo)志SF、零標(biāo)志ZF、輔助進位標(biāo)志AF、奇偶標(biāo)志PF和進位標(biāo)志CF)傳送至AH的指定位,即相應(yīng)地傳送至位D7、D6、D4、D2和D0。(位D5、D3、D1的內(nèi)容沒有定義),如圖2-18所示。這條指令本身不影響這些標(biāo)志位。第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-18 LAHF指令示意圖76543210AHCTSZAPIO DFLAG第2章 微處理器的結(jié)構(gòu)及存儲器組成 (2) SAHF(Store AH into Flags) 格式:SAHF 功能:這條指令與上一條的操作剛好相反,它是把寄存器AH的指定位傳送至標(biāo)志寄存器的低8位的SF、ZF、A

50、F、PF和CF標(biāo)志。因而這些標(biāo)志的內(nèi)容就要受到影響,這取決于AH中相應(yīng)位的狀態(tài),但這條指令并不影響溢出標(biāo)志OF、方向標(biāo)志DF、中斷屏蔽標(biāo)志IF和追蹤標(biāo)志TF,即不影響標(biāo)志寄存器的高位字節(jié)。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (3) PUSHF(Push Flags) 格式:PUSHF 功能:把整個標(biāo)志寄存器FLAGS推入至棧指針?biāo)傅臈5捻敳?,同時修改棧指針,即SP-2SP。 這條指令不影響標(biāo)志位。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (4) POPF(POP Flags) 格式:POPF 功能:把現(xiàn)行棧指針?biāo)傅囊粋€字,傳送給標(biāo)志寄存器FLAGS,同時相應(yīng)地修改棧指針,即SP+2SP。這條指令

51、執(zhí)行后,80X86的標(biāo)志位就取決于原棧頂部的內(nèi)容。 PUSHF和POPF這兩條指令可保存和恢復(fù)標(biāo)志寄存器。在子程序調(diào)用和中斷服務(wù)中可利用這兩條指令來保護和恢復(fù)標(biāo)志位。另外,這兩條指令也可以用來改變追蹤標(biāo)志TF。在80X86的指令系統(tǒng)中,沒有直接能改變TF標(biāo)志的指令,故若要改變TF標(biāo)志,先用PUSHF指令把標(biāo)志位入棧,然后設(shè)法改變棧頂存儲單元的D8位(把整個標(biāo)志看成一個字),再用POPF指令恢復(fù)。這樣其余的標(biāo)志不受影響,而只有TF標(biāo)志按需要改變了。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (5) PUSHFD 格式:PUSHFD 功能:PUSHFD為標(biāo)志寄存器入棧指令,用于將32位EFLAGS的內(nèi)容壓

52、入堆棧。操作后,使(E)SP減4。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (6) POPFD 格式:POPFD 功能:POPFD為標(biāo)志寄存器出棧指令,用于將棧頂32位數(shù)彈出到EFLAGS中。 說明: EFLAGS的恢復(fù)標(biāo)志RF(D16)和虛擬8086方式標(biāo)志VM(D17)不受POPF和POPFD指令的影響;I/O特權(quán)級標(biāo)志IOPL(D13、D12)只有在當(dāng)前代碼段的特權(quán)級為0時才受影響;中斷標(biāo)志IF(D9)只有在當(dāng)前特權(quán)級至少等于I/O特權(quán)級時才受影響。 當(dāng)壓入堆棧的是8位數(shù)時,執(zhí)行上述指令(其操作數(shù)寬度屬性隱含為16位或32位)應(yīng)對8位帶符號數(shù)擴展到16位或32位。第2章 微處理器的結(jié)構(gòu)及存儲器

53、組成 2) 標(biāo)志位操作指令 80 x86有7條直接對標(biāo)志單獨進行操作的指令。其中三條是針對進位標(biāo)志CF的,兩條是針對方向標(biāo)志DF的,兩條是針對中斷標(biāo)志IF的。 (1) CLC(Clear Carry Flags) 格式:CLC 功能:標(biāo)志CF清0,即0CF。第2章 微處理器的結(jié)構(gòu)及存儲器組成(2) CMC(Complement Carry Flags)格式:CMC功能:標(biāo)志CF取反,即若CF=0,則1CF;若CF=1,則0CF。(3) STC(Set Carry Flags)格式:STC功能:標(biāo)志CF置1,即1CF。第2章 微處理器的結(jié)構(gòu)及存儲器組成(4) CLD(Clear Directio

54、n Flag)格式:CLD功能:標(biāo)志DF清0,即0DF,則在串操作指令時,使地址增量。(5) STD(Set Direction Flag)格式:STD功能:標(biāo)志DF置1,即1DF,則在串操作指令時,使地址減量。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (6) CLI(Clear Interrupt enable Flag) 格式:CLI 功能:中斷允許標(biāo)志IF清0,即0CF,于是在80X86系統(tǒng)中,外部裝置送至可屏蔽中斷INTR引線上的中斷請求,CPU就不予以響應(yīng),即中斷屏蔽。但此標(biāo)志對于非屏蔽中斷NMI引線上的請求以及軟件中斷都沒有影響。第2章 微處理器的結(jié)構(gòu)及存儲器組成 (7) STI(Set

55、 Interrupt-enable Flag) 格式:STI 功能:標(biāo)志IF置1,即1IF,則CPU就可以響應(yīng)出現(xiàn)在INTR引線上的外部中斷請求。 上述7條指令除對指定的標(biāo)志位進行操作外,對其他標(biāo)志位皆無影響。第2章 微處理器的結(jié)構(gòu)及存儲器組成2.2 存儲器的組織存儲器的組織2.2.1 基本概念基本概念 1常用的術(shù)語常用的術(shù)語 1) 位(bit) 計算機中存儲信息的基本單位是一個二進制位,簡稱位,是計算機所能表示的最基本最小的數(shù)據(jù)單元,英文為bit,可用小寫字母b表示。一位可存儲一位二進制數(shù),它只能有兩種狀態(tài),即“0”和“1”。由若干個二進制位的組合就可以表示各種數(shù)據(jù)、字符等。第2章 微處理器

56、的結(jié)構(gòu)及存儲器組成 2) 字節(jié)(Byte) 相鄰的8位二進制數(shù)稱為一個字節(jié)(1Byte8 bit),英文為Byte,可用大寫字母B表示。一個字節(jié)由8位二進制數(shù)組成,其位編號自左至右為b7、b6、b5、b4、b3、b2、b1、b0。一個字節(jié)占用一個存儲單元。字節(jié)是微型機中存取信息的基本單位,長度是固定的,但不同微型機的字長是不同的。8位微機的字長就等于1個字節(jié),而16位微機的字長等于2個字節(jié),32位微機的字長等于4個字節(jié)。為了表示方便,常把1個字節(jié)定為8位,把一個字(Word)定為16位,一個雙字(Double Word)定為32位。第2章 微處理器的結(jié)構(gòu)及存儲器組成 3) 字(Word)和字長

57、 字是計算機內(nèi)部進行數(shù)據(jù)處理的基本單位,通常它與計算機內(nèi)部的寄存器、運算裝置、總線寬度相一致。一個字是16位,其位編號自左至右為b15b0且占用兩個存儲單元。計算機的每一個字所包含的二進制位數(shù)稱為字長。 不同類型的微型計算機有不同的字長,例如,Intel的8080、8085為8位,Intel的8086和80286的字長為16位,Intel的80386和80486的字長為32位。一個計算機的字長與它能表達(dá)數(shù)的范圍不是一回事,因為可以用單字長,也可以用多字長表示數(shù)。第2章 微處理器的結(jié)構(gòu)及存儲器組成 4) 雙字和四字 雙字:一個雙字有32位,其位編號自左至右為b31b0。一個雙字占用4個存儲單元。

58、 四字:一個四字有64位,其位編號自左至右為b63b0。一個四字占用8個存儲單元。第2章 微處理器的結(jié)構(gòu)及存儲器組成 5) 內(nèi)存單元的編址 為了正確地區(qū)分不同的內(nèi)存單元,給每個單元分配一個存儲器地址,地址從0開始編號,順序遞增1。機器中的地址是用無符號二進制數(shù)表示,可簡寫為十六進制數(shù)形式。一個存儲單元中存放的信息稱為該單元的內(nèi)容。例如,2號單元中存放了一個數(shù)字8,則表示為:(2)=8。 對于字、雙字、四字?jǐn)?shù)據(jù)類型,由于它們每個數(shù)據(jù)都要占用多個單元,訪問時只需給出最低單元的地址號即可,然后依次存取后續(xù)字節(jié)。習(xí)慣上,對于字、雙字、四字?jǐn)?shù)據(jù)類型,其低地址中存放低位字節(jié)數(shù)據(jù),高地址中存放高位字節(jié)數(shù)據(jù),

59、這就是所謂的數(shù)據(jù)“逆序存放”。第2章 微處理器的結(jié)構(gòu)及存儲器組成例例2-1 內(nèi)存現(xiàn)有以下數(shù)據(jù):地址: 0 1 2 3 4 5數(shù)據(jù):12H 34H 45H 67H 89H 0AH則對于不同的數(shù)據(jù)類型,取到1號單元的數(shù)據(jù)是:(1)字節(jié)=34H(1)字=4534H(1)雙字=89674534H第2章 微處理器的結(jié)構(gòu)及存儲器組成 2分段與分頁結(jié)構(gòu)分段與分頁結(jié)構(gòu) 1) 分段結(jié)構(gòu) 存儲器的分段管理是微型機常用的一種存儲管理方法。8086存儲管理、80486和Pentium工作在實地址方式時的存儲管理,均采用分段管理的方法。這種方法既解決了其字長為16位的機器(如以8086為CPU的PC機)訪問1M字節(jié)存儲

60、空間的矛盾,也便于程序在內(nèi)存中重定位。采用分段管理后,一個內(nèi)存單元地址要用段基地址和偏移量兩個邏輯地址來描述,表示為段基址:偏移量其段基址和偏移量的限定、物理地址的形成要視CPU工作模式?jīng)Q定。第2章 微處理器的結(jié)構(gòu)及存儲器組成 2) 分頁結(jié)構(gòu)分頁結(jié)構(gòu) 在80486/Pentium保護模式中,存儲器在邏輯上仍采用分段式結(jié)構(gòu)。存儲器最多可以由16 384 (214)個段組成,每個段最大可達(dá)4GB。從程序設(shè)計者角度看,整個存儲空間可高達(dá)64 GB,每一段為相連地址空間單元。存儲器分段有利于程序與數(shù)據(jù)間的隔離及任務(wù)之間的隔離和保護。 第2章 微處理器的結(jié)構(gòu)及存儲器組成圖2-19 存儲器映像系統(tǒng)內(nèi)存區(qū)程

溫馨提示

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

評論

0/150

提交評論