




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
第二章80x86結(jié)構(gòu)微處理器本章學習提要:1、書中內(nèi)容以自學為主;2、掌握8086處理器的大體軟、硬件結(jié)構(gòu)體系;3、了解新型處理器的大體結(jié)構(gòu)及運作方式;本章講綱2.18086處理器結(jié)構(gòu)2.1.18086結(jié)構(gòu)概述2.1.28086的內(nèi)部寄存器結(jié)構(gòu)2.1.38086的編程結(jié)構(gòu)2.1.48086的存儲器結(jié)構(gòu)2.280x86結(jié)構(gòu)微處理器簡介2.2.180x86結(jié)構(gòu)處理器的功能結(jié)構(gòu)2.2.280x86結(jié)構(gòu)微處理器的執(zhí)行環(huán)境2.18086處理器結(jié)構(gòu)
2.1.18086結(jié)構(gòu)概述8086結(jié)構(gòu)有如下特點16位結(jié)構(gòu),內(nèi)部所有寄存器均為16位,可直接處理16位數(shù)據(jù);20根地址線,可以直接尋址1MB的存儲空間;共40個外部引腳;需單相時鐘,單5V供電;2.18086處理器結(jié)構(gòu)
2.1.18086結(jié)構(gòu)概述8086處理器內(nèi)部分為兩個部分總線接口單元(BusInterfaceUint,BIU)負責處理器與存儲器間的信息傳遞取出指令并送入指令隊列中根據(jù)指令獲得操作數(shù)執(zhí)行單元(ExecuteUnit,EU)負責指令的執(zhí)行ESCSSSDSIPAHALBHBLCHCLDHDLSPBPSIDI標志65…1執(zhí)行單元控制邏輯ALUΣ存儲器接口BIU指令隊列EUB-busA-busC-bus8086的總體功能結(jié)構(gòu)示意2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)AHALBHBLCHCLDHDLSPBPSIDIIPPSWCSDSSSESBXAXDXCX累加器基址寄存器計數(shù)器數(shù)據(jù)寄存器堆棧指針基址指針源指針目的指針程序指針程序狀態(tài)字代碼段寄存器數(shù)據(jù)段寄存器堆棧段寄存器附加段寄存器數(shù)據(jù)寄存器指針寄存器變址寄存器控制寄存器段寄存器通用寄存器0152.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)通用寄存器包含數(shù)據(jù)寄存器、地址指針寄存器和變址寄存器數(shù)據(jù)寄存器:AX、BX、CX、DX地址指針寄存器:SP、BP變址寄存器:SI,DI段寄存器CS、DS、SS和ES控制寄存器IP、PSW2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器用于暫時存放計算過程中所用到的操作數(shù)、結(jié)果或其他信息;每個通用寄存器均為16位,可以整體訪問,但高字節(jié)和低字節(jié)也可以獨立訪問;2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器AX:算術運算的主要寄存器,所有IO口指令必須經(jīng)過AX交換數(shù)據(jù)。BX:在計算操作數(shù)的存放地址時,可以用來存放操作數(shù)的基地址?;刂罚涸谠L問操作數(shù)時,如果操作數(shù)的存放地址由一個相對固定的地址B和一個相對于B的偏移量構(gòu)成,則B稱為基地址。2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器CX:在循環(huán)LOOP指令和串處理指令中用作隱含計數(shù)器。DX:可以作為數(shù)據(jù)寄存器使用。一般在雙字長乘除法運算時,把DX和AX組合在一起存放一個雙字長(32位)數(shù),DX用來存放高16位;對某些I/O操作DX可用來存放I/O的端口地址(口地址256)。2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器地址指針SP和BPSP:堆棧指針寄存器,指示堆棧棧頂?shù)钠屏浚渑cSS聯(lián)合,可計算出堆棧棧頂?shù)奈锢淼刂?;BP:基址指針,可與SS結(jié)合計算出位于堆棧段中的某存儲器單元的物理地址;200609122.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器地址指針SP和BPSP:堆棧指針寄存器,指示堆棧棧頂?shù)钠屏浚渑cSS聯(lián)合,可計算出堆棧棧頂?shù)奈锢淼刂罚籅P:基址指針,可與SS結(jié)合計算出位于堆棧段中的某存儲器單元的物理地址;200609122.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)堆棧堆棧是按先進后出的原則組織起來的一段儲存區(qū)域;用于堆棧的存儲段一端固定,另外一端浮動,固定端稱為棧底,浮動端稱為棧頂。其實現(xiàn)方法為:設置一個指針(寄存器),保存堆棧的棧頂?shù)刂?,其初值就為棧底,而需入棧的?nèi)容始終保存在棧頂端;根據(jù)堆棧指針移動方向,堆棧分為向上生長(棧頂向地址增方向移動)和向下生長(棧頂向地址減方向移動)型;根據(jù)堆棧指針所指向的單元是否為最后入棧數(shù)據(jù),可分為空堆棧(入棧完成后指針指向入棧數(shù)據(jù)的下一個地址)和滿堆棧(入棧完成后指針指向最后入棧數(shù)據(jù)的地址);2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)向上生長型空堆棧12h、34h、56h進棧過程及出棧過程1234H1235H1236H1237H1238H1239H123AH123BH123CH…………123412h34h56h1235123612372.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)向上生長型滿堆棧12h、34h進棧過程及出棧過程1234H1235H1236H1237H1238H1239H123AH123BH123CH…………123434h56h123512362.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)1、通用寄存器變址寄存器SI和DISI:源變址寄存器;DI:目的變址寄存器;SI和DI一般與DS聯(lián)合,可以確定源存儲單元和目的存儲單元的物理地址;SI和DI具有自動增加或減小1的能力;2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)2、段寄存器8086系統(tǒng)認為:程序=代碼+數(shù)據(jù),每種編碼各自存放于自己的區(qū)域中,引入段的概念,并使用段寄存器來保存每種編碼的起始地址;8086的寄存器包括CS、DS、SS和ES8086系統(tǒng)中的各個段所保存的內(nèi)容均有特定含義;CS:代碼段寄存器,保存指令代碼存放的起始地址;DS:數(shù)據(jù)段寄存器,保存用戶數(shù)據(jù)存放的起始地址;SS:堆棧段寄存器,保存程序堆棧數(shù)據(jù)的起始地址;ES:附加段寄存器,保存?zhèn)溆眯畔⒌钠鹗嫉刂罚?.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器IP:InstructionPointer,指令指針寄存器;IP用于存放即將執(zhí)行指令的偏移量;IP與CS一起,才能得到指令的物理地址;PSW:ProgramStatuWord,程序狀態(tài)字;PSW通常用于表征程序執(zhí)行狀態(tài),所保存的內(nèi)容可分為條件碼標志及控制標志;8086的PSW為16位,使用了其中9位,其中6位為條件碼標志,3位為控制標志;2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器1514131211109876543210OFDFIFTFSFZFAFPFCF位編號名稱條件碼標志包含CF、PF、AF、ZF、SF、OF。條件碼標志的值一般由處理器根據(jù)運算結(jié)果自動設置,其值與操作數(shù)有關;控制標志:DF、IF、TF;控制標志值一般由運行的程序根據(jù)需要,利用指令來設置,其值與指令有關;2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器(條件碼標志)OF,OverflowFlag,溢出標志OF=1時,表示運算過程中發(fā)生了溢出;OF=0時,表示運算過程中未發(fā)生溢出;CF,CarryFlag,進位標志表征運算過程中最高位(第15位)是否發(fā)生進位;ZF,ZeroFlag,零標志表征運算結(jié)果是否全為0;SF,SignFlag,符號標志表征運算結(jié)果的符號2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器(條件碼標志)AF,AuxiliaryCarryFlag,輔助進位位表征運算過程中第3位是否向第4位發(fā)生進位;PF,ParityFlag,奇偶效驗位當前累加器中所存放的數(shù)的奇偶效驗情況;PF=1,低8位中有偶數(shù)個‘1’;PF=0,低8位中有奇數(shù)個‘1’;…432101415AF2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器(控制標志)程序?qū)刂茦酥具M行設置后,將對以后的操作起控制作用;TF:TrapFlag,陷阱標志位TF=1時,CPU在每執(zhí)行一條指令會自動產(chǎn)生一次中斷;TF使處理器處于單步執(zhí)行方式,常用于程序的調(diào)試;IF:InterruptFlag,中斷標志位IF=1時,CPU允許可屏蔽中斷;否則不允許可屏蔽中斷IF只對可屏蔽中斷產(chǎn)生影響,而對軟件中斷及不可屏蔽中斷無影響;2.18086處理器結(jié)構(gòu)
2.1.28086的內(nèi)部寄存器結(jié)構(gòu)3、控制寄存器(控制標志)DF:DirectionFlag,方向控制位在串處理指令中,用于控制SI、DI的增/減方向DF=1時,每次串處理操所后,變址寄存器SI、DI內(nèi)容自動減1,使串處理向地址遞減方向進行;DF=0時,每次串處理操所后,變址寄存器SI、DI內(nèi)容自動加1,使串處理向地址遞增方向進行;2.18086處理器結(jié)構(gòu)
2.1.38086的編程結(jié)構(gòu)總線接口單元BIU負責處理器、存儲器及IO口間的數(shù)據(jù)傳送;從存儲器中獲得指令并填充到指令隊列;CPU執(zhí)行指令過程中,配合執(zhí)行部件從指定的內(nèi)存單元或IO口獲取數(shù)據(jù);將處理結(jié)果傳送給指定的內(nèi)存單元或IO口;執(zhí)行單元EU2.18086處理器結(jié)構(gòu)
2.1.38086的編程結(jié)構(gòu)1、總線接口單元寄存器包括:CS、DS、SS、ES和IP;20位地址加法器6個字節(jié)的指令隊列總線控制接口處理器與外部總線的接口電路外部總線包括地址總線(20),數(shù)據(jù)總線(16)及控制總線。2.18086處理器結(jié)構(gòu)
2.1.38086的編程結(jié)構(gòu)1、總線接口單元指令隊列指令隊列是一個按FIFO(先進先出)原則組織起來的存儲體;BIU具有預取指令的能力,即在EU執(zhí)行指令的同時,將下一條或幾條指令填充到預取隊列中;兩種情況下BIU的行為順序執(zhí)行:BIU順序取出指令并填充到指令隊列中;程序轉(zhuǎn)移:BIU清除指令隊列,取出目標地址指令,并馬上送入EU,然后重新填滿指令隊列;2.18086處理器結(jié)構(gòu)
2.1.38086的編程結(jié)構(gòu)1、總線接口單元物理地址的形成直觀的說,8086內(nèi)部所有寄存器均為16位,但外部地址線有20根,需要做一定的變換;8086的物理地址形成方式段寄存器內(nèi)容×16+偏移量=物理地址邏輯地址段寄存器0000物理地址加法器1501501902.18086處理器結(jié)構(gòu)
2.1.38086的編程結(jié)構(gòu)2、執(zhí)行單元功能:負責執(zhí)行指令組成:寄存器:AX、BX、CX、DX和BP、SP、SI、DI;標志寄存器PSW:共9位,6個條件位,3個控制位;算術邏輯運算單元:16位加法器;EU控制邏輯接受BIU送入的指令并向EU各個邏輯部分發(fā)出相應的控制信號,完成指令執(zhí)行;2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)1、處理器的地址空間編址統(tǒng)一編址:IO口不單獨編址,存儲器地址與IO口地址位于一個地址空間;分開編址:IO口單獨編址,存儲器與IO口位于不同的地址空間,兩套地址編號可重疊;8086的IO口地址與存儲器地址采用分開編址;8086的存儲空間1MB,IO口空間為64K利用段寄存器及偏移量,8086可直接管理1M存儲器;利用輸入/輸出指令可直接尋址256個端口,使用DX可尋址64K個端口;2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)1、處理器的地址空間編址0N0N存儲器IO口存儲器+IO口2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)1、處理器的地址空間編址存儲器分段8086的存儲空間分為若干段,每段最大64KB,每段的起始地址由段寄存器保存,段內(nèi)偏移量由具體的指令提供;根據(jù)BIU的存儲器地址形成方式,段寄存器內(nèi)容須左移4位后再與偏移量相加,所以各個段的起始地址肯定是能被16整除的數(shù),這些數(shù)將1M空間分為64K段,這些段稱為小段;2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)2、邏輯地址與物理地址邏輯地址:由段寄存器與偏移量構(gòu)成;邏輯地址記作:Segment:Offset 如:1234:1324、2000:1000…物理地址:處理器在訪問存儲器某單元時,地址總線上所出現(xiàn)的信號所對應的地址;根據(jù)BIU地址形成方式,8086的物理地址須由5位16進制數(shù)才能完整地表示出來;2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)3、各段在存儲器中的分配應用程序開始對該程序所用到的各個段寄存器賦值;各個段可以重疊,8086的每個段最大為64K,但根據(jù)具體情況,幾個段可以位于同一個64K段內(nèi);如果段重疊,應用程序必須保證各個段的內(nèi)容不沖突;當程序所使用的段超過64K時,程序在適當?shù)臅r候必須動態(tài)的改變相應段寄存器的值;段寄存器值可以由操作系統(tǒng)自行管理,但分配原理如以上所述;2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)64K程序64K數(shù)據(jù)64K堆棧64K數(shù)據(jù)1000H2400H4000H5500HESSSDSCS1000H2400H4000H5500H2.18086處理器結(jié)構(gòu)
2.1.48086的存儲器結(jié)構(gòu)4、關于PC機的說明在IBMPC機中,整個存儲器的首尾部分有特定的用途;00000H~003FFH共1K空間,用于存放中斷向量;系統(tǒng)在上電后,將從0FFFF0H處取出第一條指令,即8086的上電復位程序入口地址為0FFFF0H,所以一般在0FFFF0H處放置一條無條件轉(zhuǎn)移指令,將程序轉(zhuǎn)移到系統(tǒng)初始化程序處;20060914ThursdayC2032.280x86結(jié)構(gòu)微處理器簡介
2.2.180x86結(jié)構(gòu)微處理器的功能結(jié)構(gòu)從80386開始,從功能結(jié)構(gòu)上看,到80486形成了IA(IntelArchitecture)-32微處理器的基礎;相對于8086,新的x86微處理器在硬件結(jié)構(gòu)上使用了越來越先進的半導體制造工藝;引入了很多的新的技術措施,提高處理器處理指令的速度;桶形移位寄存器、流水線、多執(zhí)行部件、高速緩存等;加入浮點數(shù)處理部件,提高處理器對浮點數(shù)的處理速度;2.280x86結(jié)構(gòu)微處理器簡介
2.2.180x86結(jié)構(gòu)微處理器的功能結(jié)構(gòu)相對于8086,微處理器在硬件結(jié)構(gòu)上增強了對上層操作系統(tǒng)的支持;多操作模式、新的存儲器管理機制、支持任務切換等;增強了對多媒體數(shù)據(jù)的處理能力;MMX、SSE等將原有的寄存器位數(shù)擴展為32位,增加了一些寄存器2.2x86結(jié)構(gòu)微處理器簡介
2.2.2x86結(jié)構(gòu)微處理器的執(zhí)行環(huán)境1、操作模式保護模式這種模式下,所有的指令及結(jié)構(gòu)特性可用;實地址模式實現(xiàn)8086編程環(huán)境并有一定的擴展:寄存器32位,具有切換到另外兩種模式的能力;系統(tǒng)管理模式為操作系統(tǒng)實現(xiàn)平臺特定功能或系統(tǒng)安全提供的一種透明機制,處于這種模式下的處理器接受到中斷后,會自動保存當前程序上下文并切換到一個獨立的存儲空間;80x86的工作模式主要介紹一下實地址方式和保護虛地址方式。1、實地址方式具有32條地址線的微處理器只有低20條地址線起作用,能尋址1M字節(jié)的物理地址。實地址方式和保護虛地址方式的區(qū)分是由控制寄存器CR0的最低位PE位決定的。若PE位為0,則工作在實地址方式;若PE位為1,工作在保護虛地址方式;實地址方式下,采用類似于8086的體系結(jié)構(gòu)。歸納起來,有如下幾個特點:①尋址機構(gòu)、存儲器管理、中斷處理機構(gòu)和8086一樣
②操作數(shù)默認長度為16位,但允許訪問處理器的32位寄存器組,在使用32位寄存器組時,指令中要加上前綴以表示越權(quán)存取。
③不用虛擬地址的概念,存儲器容量最大為1M字節(jié);采用分段方式,每段大小固定為64K字節(jié),存儲段可以彼此覆蓋,即一個64K字節(jié)的段如未用完,另一個段可以覆蓋未用的存儲區(qū)。
④實地址方式下,存儲器中保留兩個固定區(qū)域,一個為初始化程序區(qū),另一個為中斷向量區(qū)。前者為FFFF0H—FFFFFH,后者為00000—003FFH。
⑤在實地址方式下,運行的程序不分特權(quán)等級,實際上,實地址方式下的程序相當于工作在特權(quán)級0,除保護虛地址方式下的一些專用指令外,所有其他指令都能在實地址方式下運行。2、保護虛地址方式在保護方式下,全部32根地址有效,可尋址達4G字節(jié)的物理空間;支持多任務,一個任務可運行多達16KB個段,每個段最大可為4G字節(jié),故一個任務最大可達64MM字節(jié)的虛擬地址,能快速的進行任務切換和任務保護環(huán)境;在保護方式運行的程序分為4個特權(quán)級:0、1、2、3,操作系統(tǒng)核心運行在最高特權(quán)等級0,用戶程序運行在最低特權(quán)等級3。
4級特權(quán)保護結(jié)構(gòu)
如圖所示:應用程序3級常用擴展程序內(nèi)核0級2級系統(tǒng)服務程序1級系統(tǒng)和應用程序分離4級特權(quán)保護結(jié)構(gòu)(1)保護方式下的尋址機制在保護方式下,一個存儲單元的地址也是由段基地址和段內(nèi)偏移量兩部分組成。在保護方式下,段基地址也是32位的,所以就不能由段寄存器的內(nèi)容直接形成32位的段基地址,而是要經(jīng)過轉(zhuǎn)換。于是在內(nèi)存中就有一個表,每一個內(nèi)存段對應著表中的一項,此項中包含32位的段基地址。在80x86中,一個段用一個8字節(jié)的描述符來描述,多個描述符構(gòu)成一個表,稱為描述表。
由描述符中所規(guī)定的段基地址加上32位的段內(nèi)偏移量就可以尋址一個存儲單元,如圖所示。段寄存器偏移量訪問權(quán)界限基地址存儲器操作數(shù)段內(nèi)基址段界}選擇段大到4GB(2)描述符表和描述符描述符表 描述符表定義了訪問存貯器的一種數(shù)據(jù)結(jié)構(gòu),是存放在存貯器空間中的一種特殊數(shù)據(jù)段,其表項是由段描述符或其
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 籃球單挑協(xié)議書
- 聯(lián)建工廠協(xié)議書
- 洗車臺租賃合同協(xié)議書
- 續(xù)租場地協(xié)議書
- 良田翻耕協(xié)議書
- 道路通信協(xié)議書
- 聯(lián)盟合作協(xié)議書
- 建房搭竹架安全協(xié)議書
- 店鋪租賃合同書協(xié)議書
- 肉羊供應協(xié)議書
- 法院強制執(zhí)行申請書標準范文
- 索緒爾“語言”和“言語”概念研究
- 2024年地板行業(yè)分析報告及未來發(fā)展趨勢
- 2020-心肌梗死后心力衰竭防治專家共識
- 經(jīng)典成語故事望梅止渴
- 二級公立醫(yī)院績效考核三級手術目錄(2020版)
- 2023年遼寧省普通高等學校招生錄取普通類本科批(物理學科類)投檔最低分
- 電裝 集團禁限用工藝-2013版
- 燃氣行業(yè)數(shù)字化轉(zhuǎn)型與智能化
- 牙周檢查記錄表
- 外墻涂料吊籃施工方案
評論
0/150
提交評論