微處理器指令系統(tǒng)安陽(yáng)工學(xué)院_第1頁(yè)
微處理器指令系統(tǒng)安陽(yáng)工學(xué)院_第2頁(yè)
微處理器指令系統(tǒng)安陽(yáng)工學(xué)院_第3頁(yè)
微處理器指令系統(tǒng)安陽(yáng)工學(xué)院_第4頁(yè)
微處理器指令系統(tǒng)安陽(yáng)工學(xué)院_第5頁(yè)
已閱讀5頁(yè),還剩60頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第二章第二章 IA-32結(jié)構(gòu)微處理器結(jié)構(gòu)微處理器第第2章:章:IA-32結(jié)構(gòu)微處理器教學(xué)重點(diǎn)結(jié)構(gòu)微處理器教學(xué)重點(diǎn)8088/8086微處理器結(jié)構(gòu)微處理器結(jié)構(gòu) 1.基本結(jié)構(gòu)基本結(jié)構(gòu) 2.功能結(jié)構(gòu)功能結(jié)構(gòu) 3.寄存器結(jié)構(gòu)寄存器結(jié)構(gòu) 4.存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器結(jié)構(gòu)2.1 8086/8088微處理器微處理器8086/8088微處理器是微處理器是Intel公司推出的第三代公司推出的第三代CPU芯片,它們的內(nèi)部結(jié)構(gòu)基本芯片,它們的內(nèi)部結(jié)構(gòu)基本相同,都采用相同,都采用16位結(jié)構(gòu)進(jìn)行操作及存儲(chǔ)器尋址,但外部性能有所差異,兩種位結(jié)構(gòu)進(jìn)行操作及存儲(chǔ)器尋址,但外部性能有所差異,兩種處理器都封裝在相同的處理器都封裝在相同的4

2、0腳雙列直插組件(腳雙列直插組件(DIP)中。)中。8086微處理器的一般性能特點(diǎn):微處理器的一般性能特點(diǎn): 1、16位的內(nèi)部結(jié)構(gòu),位的內(nèi)部結(jié)構(gòu),16位雙向數(shù)據(jù)信號(hào)線;位雙向數(shù)據(jù)信號(hào)線; 2、20位地址信號(hào)線,可尋址位地址信號(hào)線,可尋址1M字節(jié)存儲(chǔ)單元;字節(jié)存儲(chǔ)單元; 3 3、較強(qiáng)的指令系統(tǒng);、較強(qiáng)的指令系統(tǒng); 4 4、利用第、利用第16位的地址總線來(lái)進(jìn)行位的地址總線來(lái)進(jìn)行I/O端口尋址,可尋址端口尋址,可尋址64K個(gè)個(gè)I/O端口;端口; 5 5、中斷功能強(qiáng),可處理內(nèi)部軟件中斷和外部中斷,中斷源可達(dá)、中斷功能強(qiáng),可處理內(nèi)部軟件中斷和外部中斷,中斷源可達(dá)256個(gè);個(gè); 6 6、單一的、單一的5V

3、電源,單相時(shí)鐘電源,單相時(shí)鐘5MHz。 IntelIntel公司同期推出的公司同期推出的Intel8088Intel8088微處理器一種準(zhǔn)微處理器一種準(zhǔn)1616位微處理器,其位微處理器,其內(nèi)部寄存器,內(nèi)部操作等均按內(nèi)部寄存器,內(nèi)部操作等均按1616位處理器設(shè)計(jì),與位處理器設(shè)計(jì),與Intel8088Intel8088微處理微處理器基本上相同,不同的是其對(duì)外的數(shù)據(jù)線只有器基本上相同,不同的是其對(duì)外的數(shù)據(jù)線只有8 8位,目的是為了方便位,目的是為了方便地與地與8 8位位I/OI/O接口芯片相兼容。接口芯片相兼容。內(nèi)部數(shù)據(jù)總線內(nèi)部數(shù)據(jù)總線控制總線控制總線數(shù)據(jù)總線數(shù)據(jù)總線地址總線地址總線暫存器暫存器累加

4、器累加器ALU標(biāo)志寄存器標(biāo)志寄存器指指令令寄寄存存指指令令譯譯碼碼時(shí)序時(shí)序和和控制控制邏輯邏輯通通 用用寄存器組寄存器組地地 址址寄存器組寄存器組地址地址總線總線控制控制數(shù)據(jù)數(shù)據(jù)總線總線控制控制2.1.1 8088微處理器的基本結(jié)構(gòu)微處理器的基本結(jié)構(gòu)1.算術(shù)邏輯單元(運(yùn)算器)算術(shù)邏輯單元(運(yùn)算器)2.寄存器組寄存器組3.指令處理單元(控制器)指令處理單元(控制器)2.1.2 8088微處理器的功能結(jié)構(gòu)微處理器的功能結(jié)構(gòu)從程序員和使用者的角度看到的結(jié)構(gòu)從程序員和使用者的角度看到的結(jié)構(gòu) ,又,又稱(chēng)編程結(jié)構(gòu)。稱(chēng)編程結(jié)構(gòu)。8088的內(nèi)部結(jié)構(gòu)從功能上分成兩個(gè)單元的內(nèi)部結(jié)構(gòu)從功能上分成兩個(gè)單元1. 總線接

5、口單元總線接口單元BIU(Bus Interface Unit) 負(fù)責(zé)負(fù)責(zé)CPU對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問(wèn),即對(duì)存儲(chǔ)器和外設(shè)進(jìn)行訪問(wèn),即負(fù)責(zé)與負(fù)責(zé)與存儲(chǔ)器及存儲(chǔ)器及I/O接口之間的數(shù)據(jù)傳送操作接口之間的數(shù)據(jù)傳送操作 2. 執(zhí)行單元執(zhí)行單元EU(Execution Unit) 負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算負(fù)責(zé)指令的譯碼、執(zhí)行和數(shù)據(jù)的運(yùn)算兩個(gè)單元相互獨(dú)立,分別完成各自操作,兩個(gè)單元相互獨(dú)立,分別完成各自操作,還可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)?。ㄟ€可以并行執(zhí)行,實(shí)現(xiàn)指令預(yù)?。ㄖ噶钭x取指令讀取和執(zhí)行的流水線操作和執(zhí)行的流水線操作)BIU與與EU的動(dòng)作協(xié)調(diào)原則的動(dòng)作協(xié)調(diào)原則 總線接口部件(總線接口部件(BIU

6、)和執(zhí)行部件()和執(zhí)行部件(EU)按以下流水線技術(shù)原則協(xié)調(diào)工作,)按以下流水線技術(shù)原則協(xié)調(diào)工作,共同完成所要求的信息處理任務(wù):共同完成所要求的信息處理任務(wù): 每當(dāng)每當(dāng)8086的指令隊(duì)列中有兩個(gè)空字節(jié),或的指令隊(duì)列中有兩個(gè)空字節(jié),或8088的指令隊(duì)列中有一個(gè)空字的指令隊(duì)列中有一個(gè)空字節(jié)時(shí),節(jié)時(shí),BIU就會(huì)自動(dòng)把指令取到指令隊(duì)列中。其取指的順序是按指令在就會(huì)自動(dòng)把指令取到指令隊(duì)列中。其取指的順序是按指令在程序中出現(xiàn)的前后順序。程序中出現(xiàn)的前后順序。每當(dāng)每當(dāng)EU準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從準(zhǔn)備執(zhí)行一條指令時(shí),它會(huì)從BIU部件的指令隊(duì)列前部取出指令部件的指令隊(duì)列前部取出指令的代碼,然后用幾個(gè)時(shí)鐘周期去執(zhí)

7、行指令。在執(zhí)行指令的過(guò)程中,如果的代碼,然后用幾個(gè)時(shí)鐘周期去執(zhí)行指令。在執(zhí)行指令的過(guò)程中,如果必須訪問(wèn)存儲(chǔ)器或者必須訪問(wèn)存儲(chǔ)器或者IO端口,那么端口,那么EU就會(huì)請(qǐng)求就會(huì)請(qǐng)求BIU,進(jìn)入總線周期,進(jìn)入總線周期,完成訪問(wèn)內(nèi)存或者完成訪問(wèn)內(nèi)存或者IO端口的操作;如果此時(shí)端口的操作;如果此時(shí)BIU正好處于空閑狀態(tài),正好處于空閑狀態(tài),會(huì)立即響應(yīng)會(huì)立即響應(yīng)EU的總線請(qǐng)求。如的總線請(qǐng)求。如BIU正將某個(gè)指令字節(jié)取到指令隊(duì)列中,正將某個(gè)指令字節(jié)取到指令隊(duì)列中,則則BIU將首先完成這個(gè)取指令的總線周期,然后再去響應(yīng)將首先完成這個(gè)取指令的總線周期,然后再去響應(yīng)EU發(fā)出的訪問(wèn)發(fā)出的訪問(wèn)總線的請(qǐng)求??偩€的請(qǐng)求。當(dāng)指

8、令隊(duì)列已滿,且當(dāng)指令隊(duì)列已滿,且EU又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),又沒(méi)有總線訪問(wèn)請(qǐng)求時(shí),BIU便進(jìn)入空閑狀態(tài)。便進(jìn)入空閑狀態(tài)。在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),由于待執(zhí)行指令的順序發(fā)生在執(zhí)行轉(zhuǎn)移指令、調(diào)用指令和返回指令時(shí),由于待執(zhí)行指令的順序發(fā)生了變化,則指令隊(duì)列中已經(jīng)裝入的字節(jié)被自動(dòng)消除,了變化,則指令隊(duì)列中已經(jīng)裝入的字節(jié)被自動(dòng)消除,BIU會(huì)接著往指令會(huì)接著往指令隊(duì)列裝入轉(zhuǎn)向的另一程序段中的指令代碼。隊(duì)列裝入轉(zhuǎn)向的另一程序段中的指令代碼。 BIU與與EU的動(dòng)作協(xié)調(diào)原則(續(xù))的動(dòng)作協(xié)調(diào)原則(續(xù)) BIU與與EU兩者的工作是不同步的,正是兩者的工作是不同步的,正是這種既相互獨(dú)立又相互配合的關(guān)系,使得

9、這種既相互獨(dú)立又相互配合的關(guān)系,使得8086/8088可以在執(zhí)行指令的同時(shí),進(jìn)行取可以在執(zhí)行指令的同時(shí),進(jìn)行取指令代碼的操作,也就是說(shuō)指令代碼的操作,也就是說(shuō)BIU與與EU是一是一種并行工作方式,改變了以往計(jì)算機(jī)取指種并行工作方式,改變了以往計(jì)算機(jī)取指令令譯碼譯碼執(zhí)行指令的串行工作方式,大執(zhí)行指令的串行工作方式,大大提高了工作效率,大提高了工作效率, 2.1.3 8088/8086的寄存器結(jié)構(gòu)的寄存器結(jié)構(gòu)8088/8086的寄存器組有的寄存器組有8個(gè)通用寄存器個(gè)通用寄存器4個(gè)段寄存器個(gè)段寄存器1個(gè)標(biāo)志寄存器個(gè)標(biāo)志寄存器1個(gè)指令指針寄存器個(gè)指令指針寄存器它們均為它們均為1616位位! !圖示圖示

10、1. 通用寄存器通用寄存器8088有有8個(gè)通用的個(gè)通用的16位寄存器位寄存器(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器: AX BX CX DX(2)變址寄存器)變址寄存器: SI DI(3)指針寄存器)指針寄存器: BP SP4個(gè)數(shù)據(jù)寄存器還可以分成高個(gè)數(shù)據(jù)寄存器還可以分成高8位和低位和低8位兩位兩個(gè)獨(dú)立的寄存器,這樣又形成個(gè)獨(dú)立的寄存器,這樣又形成8個(gè)通用的個(gè)通用的8位寄存器位寄存器AX: AH AL BX: BH BLCX: CH CL DX: DH DL(1)數(shù)據(jù)寄存器)數(shù)據(jù)寄存器AX稱(chēng)為稱(chēng)為累加器累加器(Accumulator)使用頻度最高。用于算術(shù)、邏輯運(yùn)算以及與外設(shè)傳送信使用頻度最高。用于算術(shù)

11、、邏輯運(yùn)算以及與外設(shè)傳送信息等息等BX稱(chēng)為稱(chēng)為基址寄存器基址寄存器(Base address Register)常用做存放存儲(chǔ)器地址常用做存放存儲(chǔ)器地址CX稱(chēng)為稱(chēng)為計(jì)數(shù)器計(jì)數(shù)器(Counter)作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器作為循環(huán)和串操作等指令中的隱含計(jì)數(shù)器DX稱(chēng)為稱(chēng)為數(shù)據(jù)寄存器數(shù)據(jù)寄存器(Data register)常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高常用來(lái)存放雙字長(zhǎng)數(shù)據(jù)的高16位,或存放外設(shè)端口地址位,或存放外設(shè)端口地址(2)變址寄存器)變址寄存器16位變址寄存器位變址寄存器SI和和DI常用于存儲(chǔ)器變址尋址方式時(shí)提供地址常用于存儲(chǔ)器變址尋址方式時(shí)提供地址SI是源地址寄存器(是源地址寄存器(So

12、urce Index)DI是目的地址寄存器(是目的地址寄存器(Destination Index)在串操作類(lèi)指令中,在串操作類(lèi)指令中,SI、DI還有較特殊的還有較特殊的用法用法(3)指針寄存器)指針寄存器指針寄存器用于尋址內(nèi)存指針寄存器用于尋址內(nèi)存堆棧堆棧內(nèi)的數(shù)據(jù)內(nèi)的數(shù)據(jù)SPSP為堆棧指針寄存器(為堆棧指針寄存器(Stack Pointer), ,指示指示堆棧段棧頂?shù)奈恢茫ㄆ频刂罚┒褩6螚m數(shù)奈恢茫ㄆ频刂罚〣PBP為基址指針寄存器(為基址指針寄存器(Base Pointer),表示),表示數(shù)據(jù)在堆棧段中的基地址數(shù)據(jù)在堆棧段中的基地址SPSP和和BPBP寄存器與寄存器與SSSS段寄存器聯(lián)合使

13、用以確段寄存器聯(lián)合使用以確定堆棧段中的存儲(chǔ)單元地址定堆棧段中的存儲(chǔ)單元地址堆棧堆棧(Stack)是主存中一個(gè)特殊的)是主存中一個(gè)特殊的區(qū)域,采用區(qū)域,采用“先進(jìn)后出先進(jìn)后出”或或“后進(jìn)先出后進(jìn)先出”存取操作方式、而不是隨機(jī)存取方式。存取操作方式、而不是隨機(jī)存取方式。用用8088/8086形成的微機(jī)系統(tǒng)中,堆形成的微機(jī)系統(tǒng)中,堆棧區(qū)域被稱(chēng)為堆棧段棧區(qū)域被稱(chēng)為堆棧段2. 指令指針寄存器指令指針寄存器IP(Instruction Pointer)為指令指針寄存)為指令指針寄存器,指示主存儲(chǔ)器指令的位置。又稱(chēng)程序器,指示主存儲(chǔ)器指令的位置。又稱(chēng)程序計(jì)數(shù)器,用來(lái)存放將要取出的指令在現(xiàn)行計(jì)數(shù)器,用來(lái)存放將

14、要取出的指令在現(xiàn)行代碼段中的地址。代碼段中的地址。隨著指令的執(zhí)行,隨著指令的執(zhí)行,IP將自動(dòng)修改以指示下將自動(dòng)修改以指示下一條指令所在的存儲(chǔ)器位置一條指令所在的存儲(chǔ)器位置IP寄存器是一個(gè)寄存器是一個(gè)專(zhuān)用專(zhuān)用寄存器寄存器IPIP寄存器與寄存器與CSCS段寄存器聯(lián)合使用以確定下段寄存器聯(lián)合使用以確定下一條指令的存儲(chǔ)單元地址一條指令的存儲(chǔ)單元地址3. 標(biāo)志寄存器標(biāo)志寄存器標(biāo)志標(biāo)志(Flag)用于反映指令執(zhí)行結(jié)果)用于反映指令執(zhí)行結(jié)果或控制指令執(zhí)行形式或控制指令執(zhí)行形式8088處理器的各種標(biāo)志形成了一個(gè)處理器的各種標(biāo)志形成了一個(gè)16位的標(biāo)志寄存器位的標(biāo)志寄存器FLAGS(程序狀態(tài)字(程序狀態(tài)字PSW寄

15、存器)寄存器) 程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)程序設(shè)計(jì)需要利用標(biāo)志的狀態(tài)標(biāo)志寄存器標(biāo)志寄存器-分類(lèi)分類(lèi)狀態(tài)標(biāo)志狀態(tài)標(biāo)志用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)用來(lái)記錄程序運(yùn)行結(jié)果的狀態(tài)信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它信息,許多指令的執(zhí)行都將相應(yīng)地設(shè)置它CF ZF SF PF OF AF控制標(biāo)志控制標(biāo)志可由程序根據(jù)需要用指令設(shè)置,可由程序根據(jù)需要用指令設(shè)置,用于控制處理器執(zhí)行指令的方式用于控制處理器執(zhí)行指令的方式DF IF TFOF1115 12DF10IF9TF8SF7ZF65AF43PF21CF0進(jìn)位標(biāo)志進(jìn)位標(biāo)志CF(Carry Flag)當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)位(加法)或借當(dāng)運(yùn)算結(jié)果的最高有效位有進(jìn)

16、位(加法)或借位(減法)時(shí),進(jìn)位標(biāo)志置位(減法)時(shí),進(jìn)位標(biāo)志置1,即,即CF1; 否則否則CF03AH + 7CHB6H,沒(méi)有進(jìn)位:,沒(méi)有進(jìn)位:CF = 0AAH + 7CH(1)26H,有進(jìn)位:,有進(jìn)位:CF = 1零標(biāo)志零標(biāo)志ZF(Zero Flag)若運(yùn)算結(jié)果為若運(yùn)算結(jié)果為0,則,則ZF1;否則否則ZF03AH7CHB6H,結(jié)果不是零:,結(jié)果不是零:ZF084H7CH(1)00H,結(jié)果是零:,結(jié)果是零:ZF1 注意:注意:ZF為為1表示的結(jié)果是表示的結(jié)果是0符號(hào)標(biāo)志符號(hào)標(biāo)志SF(Sign Flag)運(yùn)算結(jié)果最高位為運(yùn)算結(jié)果最高位為1,則,則SF1; 否則否則SF03AH7CHB6H,最高

17、位,最高位D71:SF184H7CH(1)00H,最高位,最高位D70:SF0 有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)有符號(hào)數(shù)據(jù)用最高有效位表示數(shù)據(jù)的符號(hào)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)所以,最高有效位就是符號(hào)標(biāo)志的狀態(tài)奇偶標(biāo)志奇偶標(biāo)志PF(Parity Flag)當(dāng)運(yùn)算結(jié)果最低字節(jié)中當(dāng)運(yùn)算結(jié)果最低字節(jié)中“1”的個(gè)數(shù)為的個(gè)數(shù)為零或偶數(shù)時(shí),零或偶數(shù)時(shí),PF1;否則;否則PF03AH7CHB6H10110110B結(jié)果中有結(jié)果中有5個(gè)個(gè)“1”,是奇數(shù):,是奇數(shù):PF0 PF標(biāo)志僅反映最低標(biāo)志僅反映最低8位中位中“1”的個(gè)數(shù)是的個(gè)數(shù)是偶或奇,即使是進(jìn)行偶或奇,即使是進(jìn)行16位字操作位字操作溢出標(biāo)志溢出

18、標(biāo)志OF(Overflow Flag)若算術(shù)運(yùn)算的結(jié)果有溢出,則若算術(shù)運(yùn)算的結(jié)果有溢出,則OF1; 否則否則 OF03AH + 7CHB6H,產(chǎn)生溢出:,產(chǎn)生溢出:OF1AAH + 7CH(1)26H,沒(méi)有溢出:,沒(méi)有溢出:OF0第第2章:什么是溢出章:什么是溢出處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)處理器內(nèi)部以補(bǔ)碼表示有符號(hào)數(shù)8位表達(dá)的整數(shù)范圍是:位表達(dá)的整數(shù)范圍是:127 12816位表達(dá)的范圍是:位表達(dá)的范圍是:32767 32768如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出如果運(yùn)算結(jié)果超出這個(gè)范圍,就產(chǎn)生了溢出有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確有溢出,說(shuō)明有符號(hào)數(shù)的運(yùn)算結(jié)果不正確3AH7CHB6H

19、,就是,就是58124182,已經(jīng)超出已經(jīng)超出128127范圍,產(chǎn)生溢出,故范圍,產(chǎn)生溢出,故OF1;補(bǔ)碼補(bǔ)碼B6H表達(dá)真值是表達(dá)真值是74,顯然運(yùn)算結(jié)果也不正確,顯然運(yùn)算結(jié)果也不正確 B6H10110110B,最高位為,最高位為1,作為有符號(hào)數(shù)是負(fù)數(shù)作為有符號(hào)數(shù)是負(fù)數(shù) 對(duì)對(duì)B6H求反加求反加1等于:等于:01001001B101001010B4AH74 所以,所以,B6H表達(dá)有符號(hào)數(shù)的真值為表達(dá)有符號(hào)數(shù)的真值為74第第2章:溢出和進(jìn)位的區(qū)別章:溢出和進(jìn)位的區(qū)別溢出標(biāo)志溢出標(biāo)志OF和進(jìn)位標(biāo)志和進(jìn)位標(biāo)志CF是兩個(gè)意義是兩個(gè)意義不同的標(biāo)志不同的標(biāo)志進(jìn)位標(biāo)志表示無(wú)符號(hào)數(shù)運(yùn)算結(jié)果是否進(jìn)位標(biāo)志表示無(wú)符號(hào)

20、數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果仍然正確超出范圍,運(yùn)算結(jié)果仍然正確溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否溢出標(biāo)志表示有符號(hào)數(shù)運(yùn)算結(jié)果是否超出范圍,運(yùn)算結(jié)果已經(jīng)不正確超出范圍,運(yùn)算結(jié)果已經(jīng)不正確第第2章:章: 溢出和進(jìn)位的對(duì)比溢出和進(jìn)位的對(duì)比例例1:3AH7CHB6H無(wú)符號(hào)數(shù)運(yùn)算:無(wú)符號(hào)數(shù)運(yùn)算: 58124182范圍內(nèi),無(wú)進(jìn)位范圍內(nèi),無(wú)進(jìn)位有符號(hào)數(shù)運(yùn)算:有符號(hào)數(shù)運(yùn)算: 58124182范圍外,有溢出范圍外,有溢出例例2:AAH7CH(1)26H無(wú)符號(hào)數(shù)運(yùn)算:無(wú)符號(hào)數(shù)運(yùn)算: 170124294范圍外,有進(jìn)位范圍外,有進(jìn)位有符號(hào)數(shù)運(yùn)算:有符號(hào)數(shù)運(yùn)算: 8612428范圍內(nèi),無(wú)溢出范圍內(nèi),無(wú)溢出第第2章:溢

21、出和進(jìn)位的應(yīng)用場(chǎng)合章:溢出和進(jìn)位的應(yīng)用場(chǎng)合處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無(wú)處理器對(duì)兩個(gè)操作數(shù)進(jìn)行運(yùn)算時(shí),按照無(wú)符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志符號(hào)數(shù)求得結(jié)果,并相應(yīng)設(shè)置進(jìn)位標(biāo)志CF;同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置同時(shí),根據(jù)是否超出有符號(hào)數(shù)的范圍設(shè)置溢出標(biāo)志溢出標(biāo)志OF應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來(lái)決定。應(yīng)該利用哪個(gè)標(biāo)志,則由程序員來(lái)決定。也就是說(shuō),如果將參加運(yùn)算的操作數(shù)認(rèn)為也就是說(shuō),如果將參加運(yùn)算的操作數(shù)認(rèn)為是無(wú)符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有是無(wú)符號(hào)數(shù),就應(yīng)該關(guān)心進(jìn)位;認(rèn)為是有符號(hào)數(shù),則要注意是否溢出符號(hào)數(shù),則要注意是否溢出第第2章:溢出的判斷章:溢出的判斷判斷運(yùn)算結(jié)果是否溢出有

22、一個(gè)簡(jiǎn)單的規(guī)則:判斷運(yùn)算結(jié)果是否溢出有一個(gè)簡(jiǎn)單的規(guī)則:只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相只有當(dāng)兩個(gè)相同符號(hào)數(shù)相加(包括不同符號(hào)數(shù)相減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),減),而運(yùn)算結(jié)果的符號(hào)與原數(shù)據(jù)符號(hào)相反時(shí),產(chǎn)生溢出;因?yàn)?,此時(shí)的運(yùn)算結(jié)果顯然不正確產(chǎn)生溢出;因?yàn)椋藭r(shí)的運(yùn)算結(jié)果顯然不正確其他情況下,則不會(huì)產(chǎn)生溢出其他情況下,則不會(huì)產(chǎn)生溢出例例1:3AH7CHB6H溢出溢出例例2:AAH7CH無(wú)溢出無(wú)溢出例例3:3AH7CH無(wú)溢出無(wú)溢出例例4:AAH7CH2DH溢出溢出輔助進(jìn)位標(biāo)志輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)3AH7CHB6H,D3有進(jìn)位:有進(jìn)位:A

23、F1運(yùn)算時(shí)運(yùn)算時(shí)D D3 3位(低半字節(jié))有進(jìn)位或位(低半字節(jié))有進(jìn)位或借位時(shí),借位時(shí),AFAF1 1;否則;否則AFAF0 0這個(gè)標(biāo)志主要由處理器內(nèi)部使用,這個(gè)標(biāo)志主要由處理器內(nèi)部使用,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用于十進(jìn)制算術(shù)運(yùn)算調(diào)整指令中,用戶一般不必關(guān)心用戶一般不必關(guān)心方向標(biāo)志方向標(biāo)志DF(Direction Flag)用于串操作指令中,控制地址的變化方向:用于串操作指令中,控制地址的變化方向:設(shè)置設(shè)置DF0,存儲(chǔ)器地址自動(dòng)增加;,存儲(chǔ)器地址自動(dòng)增加;設(shè)置設(shè)置DF1,存儲(chǔ)器地址自動(dòng)減少,存儲(chǔ)器地址自動(dòng)減少CLDCLD指令復(fù)位方向標(biāo)志:指令復(fù)位方向標(biāo)志:DFDF0 0STDSTD指令置

24、位方向標(biāo)志:指令置位方向標(biāo)志:DFDF1 1中斷允許標(biāo)志中斷允許標(biāo)志IF(Interrupt-enable Flag)控制可屏蔽中斷是否可以被處理器響應(yīng):控制可屏蔽中斷是否可以被處理器響應(yīng):設(shè)置設(shè)置IF1,則允許中斷;,則允許中斷;設(shè)置設(shè)置IF0,則禁止中斷,則禁止中斷CLICLI指令復(fù)位中斷標(biāo)志:指令復(fù)位中斷標(biāo)志:IFIF0 0STISTI指令置位中斷標(biāo)志:指令置位中斷標(biāo)志:IFIF1 1陷阱標(biāo)志陷阱標(biāo)志TF(Trap Flag)用于控制處理器進(jìn)入單步操作方式:用于控制處理器進(jìn)入單步操作方式:設(shè)置設(shè)置TF0,處理器正常工作;,處理器正常工作;設(shè)置設(shè)置TF1,處理器,處理器單步執(zhí)行指令單步執(zhí)行

25、指令單步執(zhí)行指令單步執(zhí)行指令處理器在處理器在每條指令執(zhí)行結(jié)每條指令執(zhí)行結(jié)束束時(shí),便產(chǎn)生一個(gè)編號(hào)為時(shí),便產(chǎn)生一個(gè)編號(hào)為1 1的內(nèi)部中斷的內(nèi)部中斷這種內(nèi)部中斷稱(chēng)為這種內(nèi)部中斷稱(chēng)為單步中斷單步中斷所以所以TFTF也稱(chēng)為也稱(chēng)為單步標(biāo)志單步標(biāo)志n利用單步中斷可對(duì)程序進(jìn)行逐條指令的調(diào)試?yán)脝尾街袛嗫蓪?duì)程序進(jìn)行逐條指令的調(diào)試n這種逐條指令調(diào)試程序的方法就是這種逐條指令調(diào)試程序的方法就是單步調(diào)試單步調(diào)試2.1.4 8088/8086的存儲(chǔ)器結(jié)構(gòu)的存儲(chǔ)器結(jié)構(gòu)存儲(chǔ)器存儲(chǔ)器是計(jì)算機(jī)存儲(chǔ)信息的地方。掌握數(shù)是計(jì)算機(jī)存儲(chǔ)信息的地方。掌握數(shù)據(jù)據(jù)存儲(chǔ)格式存儲(chǔ)格式,以及存儲(chǔ)器的,以及存儲(chǔ)器的分段管理分段管理對(duì)以對(duì)以后的匯編程序

26、設(shè)計(jì)非常重要后的匯編程序設(shè)計(jì)非常重要區(qū)別區(qū)別寄存器寄存器、存儲(chǔ)器存儲(chǔ)器(主存主存)、外存外存(包括硬包括硬盤(pán)、光盤(pán)、磁帶等存儲(chǔ)介質(zhì)盤(pán)、光盤(pán)、磁帶等存儲(chǔ)介質(zhì))答案答案第第2章:章:1. 數(shù)據(jù)的存儲(chǔ)格式數(shù)據(jù)的存儲(chǔ)格式計(jì)算機(jī)中信息的單位計(jì)算機(jī)中信息的單位二進(jìn)制位二進(jìn)制位BitBit:存儲(chǔ)一位二進(jìn)制數(shù):存儲(chǔ)一位二進(jìn)制數(shù):0 0或或1 1字節(jié)字節(jié)ByteByte:8 8個(gè)二進(jìn)制位,個(gè)二進(jìn)制位,D D7 7D D0 0字字WordWord:1616位,位,2 2個(gè)字節(jié),個(gè)字節(jié),D D1515D D0 0雙字雙字DWordDWord:3232位,位,4 4個(gè)字節(jié),個(gè)字節(jié),D D3131D D0 0最低有效位

27、最低有效位LSBLSB:數(shù)據(jù)的最低位,:數(shù)據(jù)的最低位,D D0 0位位最高有效位最高有效位MSBMSB:數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、:數(shù)據(jù)的最高位,對(duì)應(yīng)字節(jié)、字、雙字分別指字、雙字分別指D D7 7、D D1515、D D3131位位第第2章:存儲(chǔ)單元及其存儲(chǔ)內(nèi)容章:存儲(chǔ)單元及其存儲(chǔ)內(nèi)容每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào);被稱(chēng)每個(gè)存儲(chǔ)單元都有一個(gè)編號(hào);被稱(chēng)為為存儲(chǔ)器地址存儲(chǔ)器地址每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容每個(gè)存儲(chǔ)單元存放一個(gè)字節(jié)的內(nèi)容0002H0002H單元存放有一個(gè)數(shù)據(jù)單元存放有一個(gè)數(shù)據(jù)34H34H表達(dá)為表達(dá)為0002H0002H34H34H第第2章:多字節(jié)數(shù)據(jù)存放方式章:多字節(jié)數(shù)據(jù)存放方式多字節(jié)數(shù)據(jù)

28、在存儲(chǔ)器中占連續(xù)的多個(gè)多字節(jié)數(shù)據(jù)在存儲(chǔ)器中占連續(xù)的多個(gè)存儲(chǔ)單元:存儲(chǔ)單元:存放時(shí),低字節(jié)存入低地址,高字節(jié)存存放時(shí),低字節(jié)存入低地址,高字節(jié)存入高地址;入高地址;表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)表達(dá)時(shí),用它的低地址表示多字節(jié)數(shù)據(jù)占據(jù)的地址空間。占據(jù)的地址空間。圖圖2-52-5中中0002H“0002H“字字”單元的內(nèi)容為:?jiǎn)卧膬?nèi)容為:0002H = 1234H0002H = 1234H0002H0002H號(hào)號(hào)“雙字雙字”單元的內(nèi)容為:?jiǎn)卧膬?nèi)容為:0002H = 78561234H0002H = 78561234H 80 x86處理器采用處理器采用“低對(duì)低、高對(duì)低對(duì)低、高對(duì)高高”的存儲(chǔ)形式

29、,被稱(chēng)為的存儲(chǔ)形式,被稱(chēng)為“小端方式小端方式Little Endian”。 相 對(duì) 應(yīng) 還 存 在相 對(duì) 應(yīng) 還 存 在 “ 大 端 方 式大 端 方 式 B i g Endian”。第第2章:數(shù)據(jù)的地址對(duì)齊章:數(shù)據(jù)的地址對(duì)齊同一個(gè)存儲(chǔ)器地址可以是字節(jié)單元地址、同一個(gè)存儲(chǔ)器地址可以是字節(jié)單元地址、字單元地址、雙字單元地址等等(字單元地址、雙字單元地址等等(視具體情況視具體情況來(lái)確定)來(lái)確定)字單元安排在字單元安排在偶地址偶地址(xxx0B)、雙字單)、雙字單元安排在元安排在模模4地址地址(xx00B)等,被稱(chēng)為)等,被稱(chēng)為“地地址對(duì)齊(址對(duì)齊(Align)”對(duì)于不對(duì)齊地址的數(shù)據(jù),處理器訪問(wèn)時(shí),

30、對(duì)于不對(duì)齊地址的數(shù)據(jù),處理器訪問(wèn)時(shí),需要額外的訪問(wèn)存儲(chǔ)器時(shí)間需要額外的訪問(wèn)存儲(chǔ)器時(shí)間應(yīng)該將數(shù)據(jù)的地址對(duì)齊,以取得較高的存應(yīng)該將數(shù)據(jù)的地址對(duì)齊,以取得較高的存取速度取速度2. 存儲(chǔ)器的分段管理存儲(chǔ)器的分段管理8088CPU8088CPU有有2020條地址線條地址線最大可尋址空間為最大可尋址空間為2 220201MB1MB物理地址范圍從物理地址范圍從00000H00000HFFFFFHFFFFFH8 0 8 8 C P U8 0 8 8 C P U 將將 1 M B1 M B 空 間 分 成 許 多空 間 分 成 許 多 邏 輯 段邏 輯 段(SegmentSegment)每個(gè)段最大限制為每個(gè)段最

31、大限制為64KB64KB段地址的低段地址的低4 4位為位為0000B0000B這樣,一個(gè)存儲(chǔ)單元除具有一個(gè)唯一的物這樣,一個(gè)存儲(chǔ)單元除具有一個(gè)唯一的物理地址外,還具有多個(gè)邏輯地址理地址外,還具有多個(gè)邏輯地址第第2章:物理地址和邏輯地址章:物理地址和邏輯地址8088CPU存儲(chǔ)系統(tǒng)中,對(duì)應(yīng)每個(gè)物理存存儲(chǔ)系統(tǒng)中,對(duì)應(yīng)每個(gè)物理存儲(chǔ)單元都有一個(gè)唯一的儲(chǔ)單元都有一個(gè)唯一的20位編號(hào),就是物位編號(hào),就是物理地址,從理地址,從00000H FFFFFH分段后在用戶編程時(shí),采用邏輯地址,分段后在用戶編程時(shí),采用邏輯地址,形式為形式為段基地址段基地址 : : 段內(nèi)偏移地址段內(nèi)偏移地址分隔符分隔符物理地址物理地址

32、14700H邏輯地址邏輯地址 1460H:100H第第2章:邏輯地址章:邏輯地址段地址段地址說(shuō)明邏輯段在主存中的起始位置說(shuō)明邏輯段在主存中的起始位置8088規(guī)定段地址必須是模規(guī)定段地址必須是模16地址:地址:xxxx0H省略低省略低4位位0000B,段地址就可以用,段地址就可以用16位數(shù)位數(shù)據(jù)表示,就能用據(jù)表示,就能用16位位段寄存器段寄存器表達(dá)段地址表達(dá)段地址偏移地址偏移地址說(shuō)明主存單元距離段起始位置的說(shuō)明主存單元距離段起始位置的偏移量偏移量每段不超過(guò)每段不超過(guò)64KB,偏移地址也可用,偏移地址也可用16位位數(shù)數(shù)據(jù)表示據(jù)表示第第2章:物理地址和邏輯地址的轉(zhuǎn)換章:物理地址和邏輯地址的轉(zhuǎn)換將邏輯

33、地址中的段地址左移將邏輯地址中的段地址左移4位,加上位,加上偏移地址就得到偏移地址就得到20位物理地址位物理地址一個(gè)物理地址可以有多個(gè)邏輯地址一個(gè)物理地址可以有多個(gè)邏輯地址邏輯地址邏輯地址 1460:1001460:100、1380:F001380:F00物理地址物理地址 14700H 14700H14700H 14700H146014600 0H H 100H100H14700H14700H138013800 0H H F00HF00H14700H14700H段地址左移段地址左移4 4位位加上偏移地址加上偏移地址得到物理地址得到物理地址第第2章:章:3. 段寄存器段寄存器8088有有4個(gè)個(gè)1

34、6位段寄存器位段寄存器CS(代碼段)指明(代碼段)指明代碼段代碼段的起始地址的起始地址SS(堆棧段)指明(堆棧段)指明堆棧段堆棧段的起始地址的起始地址DS(數(shù)據(jù)段)指明(數(shù)據(jù)段)指明數(shù)據(jù)段數(shù)據(jù)段的起始地址的起始地址ES(附加段)指明(附加段)指明附加段附加段的起始地址的起始地址每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的起每個(gè)段寄存器用來(lái)確定一個(gè)邏輯段的起始地址,每種邏輯段均有各自的用途始地址,每種邏輯段均有各自的用途第第2章:代碼段寄存器章:代碼段寄存器CS(Code Segment)代碼段用來(lái)存放程序的指令序列代碼段用來(lái)存放程序的指令序列代碼段寄存器代碼段寄存器CS存放代碼段的段地址存放代碼段的段地址

35、指令指針寄存器指令指針寄存器IP指示下條指令的偏移地址指示下條指令的偏移地址處理器利用處理器利用CS:IP取得下一條要執(zhí)行的指令取得下一條要執(zhí)行的指令第第2章:堆棧段寄存器章:堆棧段寄存器SS(Stack Segment)堆棧段確定堆棧所在的主存區(qū)域堆棧段確定堆棧所在的主存區(qū)域堆棧段寄存器堆棧段寄存器SS存放堆棧段的段地址存放堆棧段的段地址堆棧指針寄存器堆棧指針寄存器SP指示堆棧棧頂?shù)钠频刂分甘径褩m數(shù)钠频刂诽幚砥骼锰幚砥骼肧S:SP操作堆棧頂?shù)臄?shù)據(jù)操作堆棧頂?shù)臄?shù)據(jù)第第2章:數(shù)據(jù)段寄存器章:數(shù)據(jù)段寄存器DS(Data Segment)數(shù)據(jù)段存放運(yùn)行程序所用的數(shù)據(jù)數(shù)據(jù)段存放運(yùn)行程序所用

36、的數(shù)據(jù)數(shù)據(jù)段寄存器數(shù)據(jù)段寄存器DS存放數(shù)據(jù)段的段地址存放數(shù)據(jù)段的段地址各種主存尋址方式(有效地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器)得到存儲(chǔ)器中操作數(shù)的偏移地址中操作數(shù)的偏移地址處理器利用處理器利用DS:EA存取數(shù)據(jù)段中的數(shù)據(jù)存取數(shù)據(jù)段中的數(shù)據(jù)第第2章:附加段寄存器章:附加段寄存器ES(Extra Segment)附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段是附加的數(shù)據(jù)段,也保存數(shù)據(jù):附加段寄存器附加段寄存器ES存放附加段的段地址存放附加段的段地址各種主存尋址方式(有效地址各種主存尋址方式(有效地址EA)得到存儲(chǔ)器)得到存儲(chǔ)器中操作數(shù)的偏移地址中操作數(shù)的偏移地址處理器利用處理器利用ES:E

37、A存取附加段中的數(shù)據(jù)存取附加段中的數(shù)據(jù)串操作指令將附加段作為其目的操作數(shù)的串操作指令將附加段作為其目的操作數(shù)的存放區(qū)域存放區(qū)域第第2章:如何分配各個(gè)邏輯段章:如何分配各個(gè)邏輯段程序的程序的指令指令序列必須安排在代碼段序列必須安排在代碼段程序使用的程序使用的堆棧堆棧一定在堆棧段一定在堆棧段程序中的程序中的數(shù)據(jù)數(shù)據(jù)默認(rèn)默認(rèn)是安排在數(shù)據(jù)段,是安排在數(shù)據(jù)段,也經(jīng)常安排在附加段,尤其是串操作也經(jīng)常安排在附加段,尤其是串操作的目的區(qū)必須是附加段的目的區(qū)必須是附加段數(shù)據(jù)的存放比較靈活,實(shí)際上可以存數(shù)據(jù)的存放比較靈活,實(shí)際上可以存放在任何一種邏輯段中放在任何一種邏輯段中第第2章:段超越前綴指令章:段超越前綴指

38、令沒(méi)有指明時(shí),一般的數(shù)據(jù)訪問(wèn)在沒(méi)有指明時(shí),一般的數(shù)據(jù)訪問(wèn)在DS段;段;使用使用BP訪問(wèn)主存,則在訪問(wèn)主存,則在SS段段默認(rèn)的情況允許改變,需要使用段超默認(rèn)的情況允許改變,需要使用段超越前綴指令;越前綴指令;8088指令系統(tǒng)中有指令系統(tǒng)中有4個(gè):個(gè):CS:;代碼段超越,使用代碼段的數(shù)據(jù);代碼段超越,使用代碼段的數(shù)據(jù)SS: ;堆棧段超越,使用堆棧段的數(shù)據(jù);堆棧段超越,使用堆棧段的數(shù)據(jù)DS: ;數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù);數(shù)據(jù)段超越,使用數(shù)據(jù)段的數(shù)據(jù)ES: ;附加段超越,使用附加段的數(shù)據(jù);附加段超越,使用附加段的數(shù)據(jù)第第2章:段超越的示例章:段超越的示例沒(méi)有段超越的指令實(shí)例:沒(méi)有段超越的指令實(shí)例:

39、MOV AX,2000H ;AXDS:2000H;從默認(rèn)的;從默認(rèn)的DS數(shù)據(jù)段取出數(shù)據(jù)數(shù)據(jù)段取出數(shù)據(jù)采用段超越前綴的指令實(shí)例:采用段超越前綴的指令實(shí)例:MOV AX,ES:2000H;AXES:2000H;從指定的;從指定的ES附加段取出數(shù)據(jù)附加段取出數(shù)據(jù)第第2章:段寄存器的使用規(guī)定章:段寄存器的使用規(guī)定訪問(wèn)存儲(chǔ)器的方式訪問(wèn)存儲(chǔ)器的方式默認(rèn)默認(rèn)可超越可超越偏移地址偏移地址取指令取指令CSCS無(wú)無(wú)IPIP堆棧操作堆棧操作SSSS無(wú)無(wú)SPSP一般數(shù)據(jù)訪問(wèn)一般數(shù)據(jù)訪問(wèn)DSDSCS ES SSCS ES SS有效地址有效地址EAEABPBP基址的尋址方式基址的尋址方式SSSSCS ES DSCS ES

40、 DS有效地址有效地址EAEA串操作的源操作數(shù)串操作的源操作數(shù)DSDSCS ES SSCS ES SSSISI串操作的目的操作數(shù)串操作的目的操作數(shù)ESES無(wú)無(wú)DIDI第第2章:寄存器的總結(jié)章:寄存器的總結(jié)8088有有8個(gè)個(gè)8位通用寄存器、位通用寄存器、8個(gè)個(gè)16位通用位通用寄存器寄存器8088有有6個(gè)狀態(tài)標(biāo)志和個(gè)狀態(tài)標(biāo)志和3個(gè)控制標(biāo)志個(gè)控制標(biāo)志8088將將1MB存儲(chǔ)空間分段管理,有存儲(chǔ)空間分段管理,有4個(gè)段個(gè)段寄存器,對(duì)應(yīng)寄存器,對(duì)應(yīng)4種邏輯段種邏輯段8088有有4個(gè)段超越前綴指令,用于明確指定個(gè)段超越前綴指令,用于明確指定數(shù)據(jù)所在的邏輯段數(shù)據(jù)所在的邏輯段8088的指令執(zhí)行過(guò)程的指令執(zhí)行過(guò)程2

41、.2 Intel 80386微處理器微處理器 8038680386實(shí)現(xiàn)了全實(shí)現(xiàn)了全3232位結(jié)構(gòu),硬件組織上采用流水線結(jié)位結(jié)構(gòu),硬件組織上采用流水線結(jié)構(gòu)、高速緩存、硬件乘構(gòu)、高速緩存、硬件乘/ /除部件等措施,并充分考慮對(duì)操除部件等措施,并充分考慮對(duì)操作系統(tǒng)的支持,在芯片級(jí)實(shí)現(xiàn)了段頁(yè)式存儲(chǔ)管理機(jī)制、快作系統(tǒng)的支持,在芯片級(jí)實(shí)現(xiàn)了段頁(yè)式存儲(chǔ)管理機(jī)制、快速多任務(wù)硬件切換開(kāi)關(guān)等,使速多任務(wù)硬件切換開(kāi)關(guān)等,使8038680386達(dá)到單片小型機(jī)的水達(dá)到單片小型機(jī)的水平。平。 寄存器組寄存器組 8038680386共有共有3434個(gè)寄存器。按功能可分為:通用寄存器、個(gè)寄存器。按功能可分為:通用寄存器、段寄

42、存器、狀態(tài)和控制寄存器、系統(tǒng)地址寄存器、調(diào)試寄段寄存器、狀態(tài)和控制寄存器、系統(tǒng)地址寄存器、調(diào)試寄存器及測(cè)試寄存器。存器及測(cè)試寄存器。1.1.通用寄存器:通用寄存器:8 8個(gè)個(gè) 和和80868086通用寄存器相同,只是擴(kuò)展到通用寄存器相同,只是擴(kuò)展到3232位,寄存器名字位,寄存器名字前加一個(gè)字符前加一個(gè)字符E E:EAXEAX、EBXEBX、ECXECX、EDXEDX、ESIESI、EDIEDI、EBPEBP、ESPESP,依然支持,依然支持8 8位和位和1616位操作,用法和位操作,用法和80868086系統(tǒng)相同。系統(tǒng)相同。2.段寄存器:段寄存器:6個(gè)個(gè)CS:代碼段寄存器:代碼段寄存器DS:

43、數(shù)據(jù)段寄存器:數(shù)據(jù)段寄存器SS:堆棧段寄存器:堆棧段寄存器ES、FS、GS:附加段寄存器:附加段寄存器在實(shí)地址方式下,用法和在實(shí)地址方式下,用法和8088相同,只是增加了兩個(gè)附加段寄存器相同,只是增加了兩個(gè)附加段寄存器FS、GS。在保護(hù)方式(即支持多任務(wù)的工作方式)下,段寄存器稱(chēng)為段。在保護(hù)方式(即支持多任務(wù)的工作方式)下,段寄存器稱(chēng)為段選擇符,與描述符配合實(shí)現(xiàn)段尋址。選擇符,與描述符配合實(shí)現(xiàn)段尋址。3.段描述符寄存器段描述符寄存器64位。其內(nèi)容包括段基地址、段限和段屬性。位。其內(nèi)容包括段基地址、段限和段屬性。段限指出本段的實(shí)際長(zhǎng)度,與段屬性一起主要用于段保護(hù),防止不同任段限指出本段的實(shí)際長(zhǎng)度

44、,與段屬性一起主要用于段保護(hù),防止不同任務(wù)進(jìn)入不該進(jìn)入的段進(jìn)行操作。務(wù)進(jìn)入不該進(jìn)入的段進(jìn)行操作。4.狀態(tài)和控制寄存器狀態(tài)和控制寄存器由標(biāo)志寄存器由標(biāo)志寄存器EFLAGS、指令指針寄存器、指令指針寄存器EIP和控制寄存器和控制寄存器CR0CR3組組成。成。(1)、標(biāo)志寄存器)、標(biāo)志寄存器 (P55)011位包括六個(gè)條件標(biāo)志、三個(gè)控制標(biāo)志。其意義與位包括六個(gè)條件標(biāo)志、三個(gè)控制標(biāo)志。其意義與8088下的意義相同。下的意義相同。1217位為新增加的標(biāo)志,位為新增加的標(biāo)志,1831位未用。位未用。IOPL:兩位寬的特權(quán)級(jí)子段,支持保護(hù)方式。指出要執(zhí)行的兩位寬的特權(quán)級(jí)子段,支持保護(hù)方式。指出要執(zhí)行的I/O

45、指令的特指令的特權(quán)級(jí)。如果當(dāng)前的特權(quán)級(jí)別數(shù)值上小于等于權(quán)級(jí)。如果當(dāng)前的特權(quán)級(jí)別數(shù)值上小于等于IOPL,則,則I/O指令可以執(zhí)指令可以執(zhí)行,否則將發(fā)生一個(gè)保護(hù)。行,否則將發(fā)生一個(gè)保護(hù)。NT:嵌套任務(wù)控制位。:嵌套任務(wù)控制位。NT=0,IRET執(zhí)行一般的中斷返回;執(zhí)行一般的中斷返回;NT=1,用一,用一個(gè)任務(wù)轉(zhuǎn)換代替一般的中斷返回。個(gè)任務(wù)轉(zhuǎn)換代替一般的中斷返回。RF:重啟動(dòng)控制。:重啟動(dòng)控制。RF=0,調(diào)試故障被接受;,調(diào)試故障被接受;RF=1,則忽略調(diào)試故障。,則忽略調(diào)試故障。成功地執(zhí)行完一條指令,成功地執(zhí)行完一條指令,CPU將將RF清清0;接收到一個(gè)非調(diào)試故障,;接收到一個(gè)非調(diào)試故障,CPU將

46、將RF置置1,即忽略該故障。,即忽略該故障。VM:虛擬:虛擬8086方式位。方式位。VM=1,處理器工作于虛擬,處理器工作于虛擬8086方式;為方式;為0,工,工作于一般的保護(hù)方式。作于一般的保護(hù)方式。(2).控制寄存器控制寄存器確定處理器的操作模式和當(dāng)前執(zhí)行的任務(wù)的特征。確定處理器的操作模式和當(dāng)前執(zhí)行的任務(wù)的特征。5.系統(tǒng)地址寄存器:系統(tǒng)地址寄存器:4個(gè)個(gè)用來(lái)保護(hù)操作系統(tǒng)需要的保護(hù)信息和地址轉(zhuǎn)換表信息,定義目前正在執(zhí)用來(lái)保護(hù)操作系統(tǒng)需要的保護(hù)信息和地址轉(zhuǎn)換表信息,定義目前正在執(zhí)行任務(wù)的環(huán)境、地址空間和中斷向量空間。行任務(wù)的環(huán)境、地址空間和中斷向量空間。GDTR:48位全局描述符表寄存器,用于

47、保存全局描述符表位全局描述符表寄存器,用于保存全局描述符表32位線性基位線性基地址和地址和16位全局描述符表界限。位全局描述符表界限。IDTR:48位中斷描述符表寄存器,用于保存中斷描述符表位中斷描述符表寄存器,用于保存中斷描述符表32位線性基位線性基地址和地址和16位界限。位界限。TR:16位局部描述符表寄存器,用于保存局部描述符表段的選擇符。位局部描述符表寄存器,用于保存局部描述符表段的選擇符。LDTR:16位局部描述符表寄存器,用于保存局部描述符表段的選擇符。位局部描述符表寄存器,用于保存局部描述符表段的選擇符。6.6.調(diào)試寄存器:調(diào)試寄存器:8 8個(gè)個(gè)DRDR0 0DRDR7 7DRD

48、R0 0DRDR3 3 保存四個(gè)線性斷點(diǎn)地址保存四個(gè)線性斷點(diǎn)地址DRDR4 4、DRDR5 5 備用寄存器,尚未定義備用寄存器,尚未定義DRDR6 6 斷點(diǎn)狀態(tài)寄存器,通過(guò)其標(biāo)志可檢測(cè)事故并進(jìn)入事故處理程序或斷點(diǎn)狀態(tài)寄存器,通過(guò)其標(biāo)志可檢測(cè)事故并進(jìn)入事故處理程序或禁止進(jìn)入事故處理程序。禁止進(jìn)入事故處理程序。DRDR7 7 斷點(diǎn)控制寄存器,用來(lái)規(guī)定斷點(diǎn)字段的長(zhǎng)度、斷點(diǎn)訪問(wèn)類(lèi)型斷點(diǎn)控制寄存器,用來(lái)規(guī)定斷點(diǎn)字段的長(zhǎng)度、斷點(diǎn)訪問(wèn)類(lèi)型等。等。7.7.測(cè)試寄存器:測(cè)試寄存器:8 8個(gè)個(gè)3232位位TRTR0 0TRTR7 72.3 IA-32結(jié)構(gòu)微處理器的執(zhí)行環(huán)境結(jié)構(gòu)微處理器的執(zhí)行環(huán)境1 1、物理存儲(chǔ)器與

49、虛擬存儲(chǔ)器的概念、物理存儲(chǔ)器與虛擬存儲(chǔ)器的概念 物理存儲(chǔ)器是指微處理器實(shí)際所能配置的內(nèi)存儲(chǔ)器。物理存儲(chǔ)器是指微處理器實(shí)際所能配置的內(nèi)存儲(chǔ)器。 由于由于8038680386微處理器設(shè)置有微處理器設(shè)置有3232位地址線,可配置位地址線,可配置4GB4GB的的內(nèi)存儲(chǔ)器,這種存儲(chǔ)器俗稱(chēng)物理存儲(chǔ)器。內(nèi)存儲(chǔ)器,這種存儲(chǔ)器俗稱(chēng)物理存儲(chǔ)器。 8038680386微處理器中存儲(chǔ)器采用分段方式管理。在段寄微處理器中存儲(chǔ)器采用分段方式管理。在段寄存器中有存器中有1414位段選擇碼,在段描述符寄存器中有位段選擇碼,在段描述符寄存器中有3232位段基位段基址,這樣尋址范圍為址,這樣尋址范圍為64TB64TB。這樣龐大的

50、存儲(chǔ)器空間在編程。這樣龐大的存儲(chǔ)器空間在編程時(shí)可以使用,但是在實(shí)際內(nèi)存中只有時(shí)可以使用,但是在實(shí)際內(nèi)存中只有4TB4TB,因此這純粹是,因此這純粹是種構(gòu)想出來(lái)的存儲(chǔ)器,稱(chēng)為虛擬存儲(chǔ)器。種構(gòu)想出來(lái)的存儲(chǔ)器,稱(chēng)為虛擬存儲(chǔ)器。 對(duì)于虛擬存儲(chǔ)器,用戶編寫(xiě)的程序是存放在外存儲(chǔ)器對(duì)于虛擬存儲(chǔ)器,用戶編寫(xiě)的程序是存放在外存儲(chǔ)器中,執(zhí)行時(shí)須由操作系統(tǒng)將其調(diào)入內(nèi)存執(zhí)行。虛擬存儲(chǔ)器中,執(zhí)行時(shí)須由操作系統(tǒng)將其調(diào)入內(nèi)存執(zhí)行。虛擬存儲(chǔ)器由操作系統(tǒng)管理使用,但必須有相應(yīng)的硬件支持。由操作系統(tǒng)管理使用,但必須有相應(yīng)的硬件支持。 8038680386微處理器中設(shè)有段寄存器、段描述符表及其相微處理器中設(shè)有段寄存器、段描述符表及

51、其相關(guān)寄存器,從而支持了虛擬存儲(chǔ)器的管理與使用。關(guān)寄存器,從而支持了虛擬存儲(chǔ)器的管理與使用。2 2存儲(chǔ)器工作方式存儲(chǔ)器工作方式 8038680386微處理器在存儲(chǔ)器管理中有三種工作方式,即實(shí)地址方式、微處理器在存儲(chǔ)器管理中有三種工作方式,即實(shí)地址方式、保護(hù)虛擬地址方式(保護(hù)方式)和虛擬保護(hù)虛擬地址方式(保護(hù)方式)和虛擬80868086方式。方式。(1)(1)實(shí)地址方式實(shí)地址方式 8038680386微處理器復(fù)位或開(kāi)機(jī)時(shí),即進(jìn)入實(shí)地址方式。微處理器復(fù)位或開(kāi)機(jī)時(shí),即進(jìn)入實(shí)地址方式。 8038680386有有6 6個(gè)寄存器和個(gè)寄存器和3232位數(shù)據(jù)線,一次可傳送位數(shù)據(jù)線,一次可傳送3232位數(shù)據(jù),但

52、默認(rèn)位數(shù)據(jù),但默認(rèn)1616位。若需使用位。若需使用3232位寄存器或?qū)ぶ贩绞?,必須在指令中使用超越前綴。位寄存器或?qū)ぶ贩绞?,必須在指令中使用超越前綴。(2)(2)保護(hù)方式保護(hù)方式 在實(shí)地址方式下修改控制寄存器在實(shí)地址方式下修改控制寄存器CRoCRo中的四位,使其值為中的四位,使其值為1 1,可,可進(jìn)入保護(hù)方式。在保護(hù)方式下,存儲(chǔ)器進(jìn)行分段、分頁(yè)管理。指令中進(jìn)入保護(hù)方式。在保護(hù)方式下,存儲(chǔ)器進(jìn)行分段、分頁(yè)管理。指令中使用的邏輯地址需經(jīng)二級(jí)變換,才能形成物理地址。在保護(hù)方式下允使用的邏輯地址需經(jīng)二級(jí)變換,才能形成物理地址。在保護(hù)方式下允許使用虛擬存儲(chǔ)器,最大可編程空間為許使用虛擬存儲(chǔ)器,最大可編程

53、空間為64TB o64TB o(3)(3)虛擬虛擬80868086方式方式 在保護(hù)方式下,若將在保護(hù)方式下,若將CPUCPU狀態(tài)標(biāo)志寄存器中的虛擬方式標(biāo)志狀態(tài)標(biāo)志寄存器中的虛擬方式標(biāo)志vMvM置置1,1,即進(jìn)入虛擬即進(jìn)入虛擬80868086方式。它既有保護(hù)方式功能,又能按方式。它既有保護(hù)方式功能,又能按80868086的語(yǔ)義執(zhí)的語(yǔ)義執(zhí)行程序代碼。行程序代碼。3 3、虛擬存儲(chǔ)管理、虛擬存儲(chǔ)管理 虛擬存儲(chǔ)器的構(gòu)成方案一般有三種:一是分段,把存儲(chǔ)器分成大虛擬存儲(chǔ)器的構(gòu)成方案一般有三種:一是分段,把存儲(chǔ)器分成大小可以變化的段;二是分頁(yè),把存儲(chǔ)器分成大小固定的頁(yè);三是混合小可以變化的段;二是分頁(yè),把存儲(chǔ)器分成大小固定的頁(yè);三是混合方案,把大小可以變化的段再分成大小固定的頁(yè)。方案,把大小可以變化的段再分成大小固定的頁(yè)。 虛擬存儲(chǔ)器與物理存儲(chǔ)器交換信息常以段頁(yè)為單位交換。如果虛擬存儲(chǔ)器與物理存儲(chǔ)器交換信息常以段頁(yè)為單位交換。如果分頁(yè),則按頁(yè)交換,稱(chēng)為調(diào)頁(yè)。從外存調(diào)入內(nèi)存稱(chēng)為頁(yè)人,從內(nèi)存調(diào)分頁(yè),則按頁(yè)交換,稱(chēng)為調(diào)頁(yè)。從外存調(diào)入內(nèi)存稱(chēng)為頁(yè)人,從內(nèi)存調(diào)入外存稱(chēng)為頁(yè)出入外存稱(chēng)為頁(yè)出。8088的內(nèi)部結(jié)構(gòu)的內(nèi)部結(jié)

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論