微機系統(tǒng)中的微處理器.ppt
《微機系統(tǒng)中的微處理器.ppt》由會員分享,可在線閱讀,更多相關(guān)《微機系統(tǒng)中的微處理器.ppt(51頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第三章微機系統(tǒng)中的微處理器,3.28086的內(nèi)部結(jié)構(gòu)3.38086的寄存器結(jié)構(gòu)3.48086的存儲器組織3.58086的I/O組織3.68086的數(shù)據(jù)尋址方式3.7高檔CPU的寄存器和存儲器,微處理器的是組成計算機系統(tǒng)的核心部件,其基本功能為:,(1)支持功能完善的指令系統(tǒng),進行各種算術(shù)、邏輯運算,通過程序完成復(fù)雜的科學(xué)計算。(2)支持各種結(jié)構(gòu)的程序的執(zhí)行,如程序的分支、循環(huán)、嵌套、子程序的調(diào)用和返回、中端服務(wù)程序。(3)控制與存儲器、外設(shè)等相連接,組成完整的微機系統(tǒng)。,3.1微處理器的一般結(jié)構(gòu),3.1.1微處理器的內(nèi)部結(jié)構(gòu),一、微處理器的功能,3.1.1微處理器的內(nèi)部結(jié)構(gòu),指令的執(zhí)行過程,3.1.1微處理器的內(nèi)部結(jié)構(gòu),外部結(jié)構(gòu)——輸入/輸出引腳——微處理器級總線微處理器通過微處理器級總線與外部部件和設(shè)備相聯(lián)系。,1.總線的功能⑴和存儲器之間交換信息⑵和I/O設(shè)備之間交換信息⑶為了系統(tǒng)工作而接收和輸出必要的信號,如輸入時鐘脈沖、復(fù)位信號、電源和接地等,2.總線的分類⑴數(shù)據(jù)總線(DataBus)⑵地址總線(AddressBus)⑶控制總線(ControlBus),一.總線功能與分類,,3.1.2微處理器的外部結(jié)構(gòu),存儲器通常由幾個模塊組成,每個模塊有幾千個單元,每個存儲單元有唯一的存儲器地址與其對應(yīng)。,二.存儲器和I/O地址空間,I/O接口——保證數(shù)據(jù)、控制與狀態(tài)信息在CPU和I/O設(shè)備之間正常傳送的電路。I/O和CPU之間的通信利用稱為I/O端口的寄存器來完成。對應(yīng)一個I/O設(shè)備的I/O接口,可能包括幾個I/O端口,每個I/O端口都有一個唯一的I/O地址與其對應(yīng)。,3.1.2微處理器的外部結(jié)構(gòu),存儲單元和I/O端口以字節(jié)為單位存放數(shù)據(jù),每個字節(jié)對應(yīng)一個標識地址。地址總線的條數(shù)即為二進制地址碼的位數(shù),它可能表示的不同地址的集合稱為地址空間。地址碼的位數(shù)決定了地址空間的大?。?n,二.存儲器和I/O地址空間,單地址空間:對存儲器和I/O端口統(tǒng)一進行編址。雙地址空間:對存儲器和I/O端口獨立進行編址。,存儲器:高位——選擇模塊,低位——選擇模塊內(nèi)的存儲單元。I/O設(shè)備:高位——選擇I/O接口,低位——選擇I/O端口。,3.1.2微處理器的外部結(jié)構(gòu),8086由兩個獨立的邏輯單元組成,即總線接口單元(BIU)和執(zhí)行單元(EU)。,BIU的任務(wù):執(zhí)行總線操作。(1)訪問存儲器,包括取指令、取操作數(shù)、存結(jié)果等。(2)與I/O之間的信息傳輸。EU的任務(wù):執(zhí)行指令,進行全部算術(shù)和邏輯運算、完成偏移地址的計算,向BIU提供指令執(zhí)行結(jié)果的數(shù)據(jù)和訪問存儲器需要的偏移地址,并對通用寄存器和標志寄存器進行管理。,3.28086的功能結(jié)構(gòu),3.28086的內(nèi)部結(jié)構(gòu),(3)EU取得指令,譯碼并執(zhí)行指令。若指令需要取操作數(shù)或存操作結(jié)果,需要訪問存儲器或I/O,EU向BIU發(fā)出訪問總線請求。當BIU接到EU的總線請求,若正忙,則須等BIU執(zhí)行完當前的總線周期,才能響應(yīng)EU的請求;若BIU空閑,則立即執(zhí)行EU申請總線的請求。,(1)BIU的指令隊列有兩個或兩個以上字節(jié)為空時,BIU自動啟動總線周期,取指填充指令隊列。直至隊列滿,進入空閑狀態(tài)。,(2)EU每執(zhí)行完一條指令,從指令隊列的隊首取指。特殊情況:系統(tǒng)初始化后,指令隊列為空,EU等待BIU從內(nèi)存取指,填充指令隊列。,(4)EU執(zhí)行轉(zhuǎn)移、調(diào)用和返回指令時,若下一條指令不在指令隊列中,則隊列被自動清除,BIU根據(jù)本條指令執(zhí)行情況重新取指填充指令隊列。,流水線技術(shù)原則,取指令——取操作數(shù)(如果需要)——執(zhí)行指令——寫入存儲器。,8086首次引入了流水線技術(shù),執(zhí)行指令和總線訪問可以同時進行,提高了總線利用率。,8086/8088以前的CPU,指令流水線,3.38086的寄存器結(jié)構(gòu),3.3.1通用寄存器組,一、數(shù)據(jù)寄存器,(1)16位數(shù)據(jù)寄存器AX——累加器,使用頻度最高,用于算術(shù)、邏輯運算以及與外設(shè)傳送信息等;BX——基址寄存器,常用做存放存儲器基地址;CX——計數(shù)器,循環(huán)和串操作等指令中的隱含計數(shù)器;DX——數(shù)據(jù)寄存器,常用來存放雙字長數(shù)據(jù)的高16位,或存放外設(shè)端口地址。,(2)8位數(shù)據(jù)寄存器:AHBHCHDHALBLCLDL,3.3.1通用寄存器組,二、地址指針和變址寄存器,變址寄存器常用于存儲器尋址時提供地址:SI——源變址寄存器DI——目的變址寄存器,指針寄存器用于尋址內(nèi)存堆棧內(nèi)的數(shù)據(jù):SP——堆棧指針,指示棧頂?shù)钠频刂贰P不能再用于其他目的,具有專用目的。BP——基址指針,表示數(shù)據(jù)在堆棧段中的基地址。SP和BP寄存器與SS段寄存器聯(lián)合使用以確定堆棧段中的存儲單元地址。,8086有4個16位段寄存器:CS——CodeSegment,執(zhí)行程序所在段的段地址SS——StackSegment,堆棧段的段地址DS——DataSegment,數(shù)據(jù)段的段地址ES——ExtraSegment,附加段的段地址,3.3.2段寄存器組,3.3.3控制寄存器組,指令指針寄存器IP(InstructionPointer):指示下一條要執(zhí)行指令的偏移地址,計算機通過CS和IP來控制指令序列的執(zhí)行流程。IP寄存器是一個專用寄存器。,標志寄存器(FLAG):狀態(tài)標志——記錄程序運行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它。CFZFSFPFOFAF控制標志——可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式。DFIFTF,3.3.3控制寄存器組,標志寄存器(FLAG),進位標志CF:當運算結(jié)果的最高有效位有進位(加法)或借位(減法)時,進位標志置1,即CF=1;否則CF=0。例如:3AH+7CH=B6H,沒有進位:CF=0AAH+7CH=(1)26H,有進位:CF=1,溢出標志OF:若算術(shù)運算的結(jié)果有溢出,則OF=1;否則OF=0例如:3AH+7CH=B6H,產(chǎn)生溢出:OF=1AAH+7CH=(1)26H,沒有溢出:OF=0,標志寄存器(FLAG),標志寄存器(FLAG),問題:1.什么是溢出?2.溢出和進位有什么區(qū)別?3.處理器怎么處理,程序員如何運用?4.如何判斷是否溢出?,處理器內(nèi)部以補碼表示有符號數(shù)。8個二進制位能夠表達的整數(shù)范圍是:+127~-128如果運算結(jié)果超出了這個范圍,就是產(chǎn)生了溢出。有溢出,說明有符號數(shù)的運算結(jié)果不正確。,1.什么是溢出?,標志寄存器(FLAG),例如:3AH+7CH=B6H,即58+124=182,已經(jīng)超出-128~127范圍,產(chǎn)生溢出,所以O(shè)F=1;另一方面,補碼B6H表達真值是-74,顯然運算結(jié)果也不正確。,溢出標志OF和進位標志CF是兩個意義不同的標志。進位標志表示無符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果仍然正確;溢出標志表示有符號數(shù)運算結(jié)果是否超出范圍,運算結(jié)果已經(jīng)不正確。,2.溢出和進位,標志寄存器(FLAG),例1:3AH+7CH=B6H無符號數(shù)運算:58+124=182,范圍內(nèi),無進位有符號數(shù)運算:58+124=182,范圍外,有溢出,2.溢出和進位,標志寄存器(FLAG),例2:AAH+7CH=(1)26H無符號數(shù)運算:170+124=294,范圍外,有進位有符號數(shù)運算:-86+124=38,范圍內(nèi),無溢出,處理器對兩個操作數(shù)進行運算時,按照無符號數(shù)求得結(jié)果,并相應(yīng)設(shè)置進位標志CF;同時,根據(jù)是否超出有符號數(shù)的范圍設(shè)置溢出標志OF。,3.如何應(yīng)用溢出和進位標志,標志寄存器(FLAG),應(yīng)該利用哪個標志,則由程序員來決定。也就是說,如果將參加運算的操作數(shù)認為是無符號數(shù),就應(yīng)該關(guān)心進位;認為是有符號數(shù),則要注意是否溢出。,判斷運算結(jié)果是否溢出有一個簡單的規(guī)則:只有當兩個相同符號數(shù)相加(異號數(shù)相減可轉(zhuǎn)化為同號數(shù)相加),而運算結(jié)果的符號與原數(shù)據(jù)符號相反時,產(chǎn)生溢出;因為,此時的運算結(jié)果顯然不正確。其他情況下,則不會產(chǎn)生溢出。,4.溢出的判斷,標志寄存器(FLAG),3.48086的存儲器組織,3.4.1存儲器地址空間和數(shù)據(jù)存儲格式,8086的存儲器是以字節(jié)(Byte,8位)為單位組織的。20條地址總線,可尋址的存儲器地址空間為220B(1MB)。,每個存儲單元都有一個編號——存儲器地址每個存儲單元存放一個字節(jié)的內(nèi)容,二進制位——1位二進制數(shù):0或1。字節(jié)——8個二進制位,D7~D0。字——16位,2個字節(jié),D15~D0。雙字——32位,4個字節(jié),D31~D0。,信息的表達單位:,3.48086的存儲器組織,3.4.1存儲器地址空間和數(shù)據(jù)存儲格式,兩個連續(xù)的字節(jié),為一個字:低對低,高對高(小端方式)。字的地址指低字節(jié)的地址。,字的地址為偶地址,稱字的存儲是對準的,訪問時只需一個總線周期。字的地址為奇地址,稱字的存儲是未對準的,訪問時要兩個總線周期。,字:[0002H]=1234H[0003H]=5612H,字節(jié):[0002H]=34H[0003H]=12H,3.48086的存儲器組織,3.4.2存儲器分段管理和物理地址的形成,對應(yīng)每個存儲單元都有一個唯一的20位編號,即物理地址。00000H~FFFFFH,8086CPU采用地址分段方法管理存儲器,即用邏輯地址表示一個存儲器單元地址:段基地址:段內(nèi)偏移地址,段地址左移4位+偏移地址=20位物理地址,例如:邏輯地址“1460H:100H”=物理地址14700H顯然,一個物理地址可以有多個邏輯地址。,3.48086的存儲器組織,3.4.2存儲器分段管理和物理地址的形成,偏移地址:說明主存單元距離段起始位置的偏移量。每段不超過64KB,偏移地址也可用16位數(shù)據(jù)表示。,段地址:說明邏輯段在主存中的起始位置。8086規(guī)定段地址必須是模16地址:xxxx0H省略低4位0000B,段地址就可以用16位數(shù)據(jù)表示,就能用16位段寄存器表達段地址。,3.48086的存儲器組織,3.4.2存儲器分段管理和物理地址的形成,8086對邏輯段的要求是:段地址低4位均為0,每段最大不超過64KB。每個段不要求必須是64KB,段與段可以重疊。,1MB空間最多能分成多少個段?,每隔64K個存儲單元開始一個段,所以1MB最少有:220216=16個段,每隔16個存儲單元就可以開始一個段,所以1MB最多有:22016=216=64K個段,1MB空間最少能分成多少個段?,3.48086的存儲器組織,3.4.3信息的分段存儲與段寄存器的關(guān)系,程序區(qū):存儲程序的指令代碼,由CS劃定并控制。,數(shù)據(jù)區(qū):存儲原始數(shù)據(jù)、中間結(jié)果和最后結(jié)果,由DS和ES控制。,堆棧區(qū):存儲需要壓入堆棧的數(shù)據(jù)和狀態(tài)信息,由SS控制。,注意:(1)訪問存儲器時,段地址由默認段寄存器提供,或由“指定”的段寄存器提供;(2)DS、ES和SS的內(nèi)容用傳送指令置入,但不能向CS中置入數(shù);(3)偏移地址的獲得有約定。,程序員如何分配各個邏輯段?,3.38086的存儲器組織,3.4.3信息的分段存儲與段寄存器的關(guān)系,程序的指令序列必須安排在代碼段;程序使用的堆棧一定在堆棧段;程序中的數(shù)據(jù)默認是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段。,數(shù)據(jù)的存放比較靈活,實際上可以存放在任何一種邏輯段中。,各個邏輯段獨立示意圖,各個邏輯段重疊示意圖,3.58086的I/O組織,I/O接口與CPU之間的通信是利用稱為I/O端口的寄存器來完成的。微型機系統(tǒng)要為I/O芯片的每個端口分配一個地址,各個端口有唯一的I/O地址與之對應(yīng),是單獨編址的。,8086CPU地址總線的低16位用來對8位I/O端口尋址,I/O地址空間為65536,即可訪問65536個8位的I/O端口,尋址范圍是64KB。任何兩個編號相鄰的8位端口可以組成一個16位端口。,3.58086的數(shù)據(jù)尋址方式,指令由操作碼和操作數(shù)兩部分組成:,操作碼:說明計算機要執(zhí)行哪種操作,如傳送、運算、移位、跳轉(zhuǎn)等操作,它是指令中不可缺少的組成部分。,操作數(shù):指令執(zhí)行的參與者,即各種操作的對象。有些指令不需要操作數(shù),通常的指令都有一個或兩個操作數(shù),也有個別指令有3個甚至4個操作數(shù)。,3.68086的數(shù)據(jù)尋址方式,指令中的操作數(shù),可以是一個具體的數(shù)值,可以是存放數(shù)據(jù)的寄存器,或指明數(shù)據(jù)在主存位置的存儲器地址。,指令系統(tǒng)設(shè)計了多種操作數(shù)的來源,尋找操作數(shù)的過程就是操作數(shù)的尋址方式。,8086的數(shù)據(jù)尋址方式有:立即數(shù)尋址方式寄存器尋址方式存儲器尋址方式隱含尋址----以后學(xué)習(xí),3.68086的數(shù)據(jù)尋址方式,MOVdest,src;dest←src;MOV指令的功能是將源操作數(shù)src;傳送至目的操作數(shù)dest,MOVAL,05H;AL←05HMOVBX,AX;BX←AXMOVAX,[SI];AX←DS:[SI]MOVAX,[BP+06H];AX←SS:[BP+06H]MOVAX,[BX+SI];AX←DS:[BX+SI],指令的助記符格式:操作碼操作數(shù)1,操作數(shù)2;注釋,立即數(shù)尋址,指令中的操作數(shù)直接存放在機器代碼中,緊跟在操作碼之后(操作數(shù)作為指令的一部分存放在操作碼之后的主存單元中)。,可以是8位數(shù)i8(00H~FFH),可以是16位數(shù)i16(0000H~FFFFH)。,立即數(shù)尋址方式常用來給寄存器賦值。MOVAL,05H;AL←05HMOVAX,0102H;AX←0102H,小地址端,大地址端,寄存器尋址,MOVAX,1234H;AX←1234HMOVBX,AX;BX←AX,操作數(shù)存放在CPU的內(nèi)部寄存器REG中,8位寄存器R8:AH/AL/BH/BL/CH/CL/DH/DL16位寄存器R16:AX/BX/CX/DX/SI/DI/BP/SP4個段寄存器SEG:CS/DS/SS/ES,存儲器尋址,指令中給出操作數(shù)的主存地址信息(偏移地址,稱之為有效地址EA),而段地址在默認的或用段超越前綴指定的段寄存器中。,8086設(shè)計了多種存儲器尋址方式:直接尋址方式寄存器間接尋址方式寄存器相對尋址方式基址變址尋址方式相對基址變址尋址方式,存儲器尋址,1.直接尋址方式,有效地址在指令中直接給出,默認的段地址在DS段寄存器,可使用段超越前綴改變。,MOVAX,[2000H];AX←DS:[2000H];指令代碼:A10020MOVAX,ES:[2000H];AX←ES:[2000H];指令代碼:26A10020,存儲器尋址,2.寄存器間接尋址方式,有效地址存放在基址寄存器BX,或變址寄存器SI、DI,或基址指針BP中。,MOVAX,[BX];AX←DS:[BX]MOVAX,ES:[DI];AX←ES:[SI],段地址對應(yīng)BX/SI/DI寄存器默認是DS,對應(yīng)BP寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,3.寄存器相對尋址方式,有效地址是寄存器內(nèi)容與有符號8位或16位位移量之和,寄存器可以是BX、BP或SI、DI。有效地址=BX/BP/SI/DI+8/16位位移量,MOVAX,[DI+06H];AX←DS:[DI+06H]MOVAX,[BP+06H];AX←SS:[BP+06H],段地址對應(yīng)BX/SI/DI寄存器默認是DS,對應(yīng)BP寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,4.基址變址尋址方式,有效地址由基址寄存器(BX或BP)的內(nèi)容加上變址寄存器(SI或DI)的內(nèi)容構(gòu)成:有效地址=BX/BP+SI/DI,MOVAX,[BX+SI];AX←DS:[BX+SI]MOVAX,[BP+DI];AX←SS:[BP+DI]MOVAX,DS:[BP+DI];AX←DS:[BP+DI],段地址對應(yīng)BX基址寄存器默認是DS,對應(yīng)BP基址寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,5.基址變址且相對尋址方式,有效地址是基址寄存器(BX/BP)、變址寄存器(SI/DI)與一個8位或16位位移量之和:有效地址=BX/BP+SI/DI+8/16位位移量,MOVAX,[BX+SI+06H];AX←DS:[BX+SI+06H]MOVAX,[BP+SI+06H];AX←SS:[BP+SI+06H],段地址對應(yīng)BX基址寄存器默認是DS,對應(yīng)BP基址寄存器默認是SS;可用段超越前綴改變。,存儲器尋址,注意:(1)位移量可用符號表示(2)同一尋址方式有多種表達方式,在寄存器相對尋址或相對基址變址尋址方式中,位移量可用符號表示:MOVAX,[SI+COUNT];COUNT是已定義的變量或常量MOVAX,[BX+SI+WNUM];WNUM也是變量或常量,同一尋址方式有時可以寫成不同的形式:MOVAX,[BX][SI];MOVAX,[BX+SI]MOVAX,COUNT[SI];MOVAX,[SI+COUNT]MOVAX,WNUM[BX][SI];MOVAX,WNUM[BX+SI];MOVAX,[BX+SI+WNUM],3.7高檔CPU的寄存器和存儲器,3.7.1高檔CPU的寄存器結(jié)構(gòu),與8086的區(qū)別:,(1)8個通用寄存器的長度擴展為32位:EAX、EBX、ECX、EDX、ESI、EDI、EBP和ESP。,(2)EIP存放下一條要執(zhí)行指令的偏移地址。其低16位稱為IP,用于偏移地址為16位的實模式情況。,(3)標志寄存器擴展為32位EFLAGS,增加了高檔CPU特有的狀態(tài)標志和控制標志。,(4)增加了16位的段寄存器FS和GS。,3.7高檔CPU的寄存器和存儲器,3.7.2高檔CPU的存儲器訪問機制,奔騰CPU可訪問存儲器空間為4GB。采用虛擬存儲技術(shù),可大大擴展存儲空間。,實模式即8086模式,CPU只能訪問地址低端的1MB存儲器空間,這部分存儲區(qū)成為實模式存儲器、常規(guī)內(nèi)存或DOS存儲器系統(tǒng)。,DOS工作于實模式,WINDOWS工作于保護模式。,一、實模式與保護模式,保護模式,CPU可訪問低端1MB存儲區(qū)和高于1MB以上的存儲區(qū)。,3.7高檔CPU的寄存器和存儲器,3.7.2高檔CPU的存儲器訪問機制,1.基本概念,二、保護模式下的存儲器尋址機制,(2)描述符表:存儲描述符的特殊用途的段。有三種:1個GDT、多個LDT和1個IDT。每個表最多存放213個描述符,每個描述符8字節(jié),每個表占用64KB。每個描述符分配一個13位的描述符索引號,索引號乘以8得到這個描述符在描述符表中的起始地址。,(1)段描述符:對段進行說明的、固定格式的、連續(xù)8個字節(jié)信息。包括32位的段地址(段基地址),20位的段界限和12位的屬性位(標志位和控制位)。,3.7高檔CPU的寄存器和存儲器,3.7.2高檔CPU的存儲器訪問機制,1.基本概念,二、保護模式下的存儲器尋址機制,(3)段寄存器、選擇符和描述符寄存器每個16位段寄存器(共6個)對應(yīng)一個64位的描述符寄存器。段寄存器由程序置入段選擇符,16位的段選擇符中的13位是描述符索引號。,一旦程序向某個段寄存器置入段選擇符,將自動地把描述符表中的64位描述符傳入對應(yīng)的描述符寄存器。,存有描述附表的特殊用途的段,它的描述符存于描述符表寄存器(GDTR、LDTR和IDTR)。,3.7高檔CPU的寄存器和存儲器,3.7.2高檔CPU的存儲器訪問機制,(1)保護模式下訪問存儲器的地址仍有段基地址(32位)和偏移地址(20位)兩部分組成。,二、保護模式下的存儲器尋址機制,(2)段基地址的獲?。菏紫?,經(jīng)段寄存器中的選擇符中的索引號,指明存儲于段描述符表中的描述符,然后,將由這個描述符提供段地址。,(3)保護模式下可尋址的存儲器空間可無限大,通過虛擬存儲器實現(xiàn)。,2.尋址機制,- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
14.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 微機 系統(tǒng) 中的 微處理器
鏈接地址:http://m.jqnhouse.com/p-11533252.html