freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

80x86保護模式系列教程(編輯修改稿)

2025-07-26 08:25 本頁面
 

【文章內(nèi)容簡介】 在保護方式下,虛擬地址空間(相當于邏輯地址空間)中存儲單元的地址由段選擇子和段內(nèi)偏移兩部分組成。與實模式相比,段選擇子代替了段值。 段選擇子長16位,其格式如下表所示。從表中可見,段選擇子的高13位是描述符索引(Index)。所謂描述符索引是指描述符在描述符表中的序號。段選擇子的第2位是引用描述符表指示位,標記為TI(Table Indicator),TI=0指示從全局描述符表GDT中讀取描述符;TI=1指示從局部描述符表LDT中讀取描述符。 選擇子結(jié)構(gòu)BIT15BIT14BIT13BIT12BIT11BIT10BIT9BIT8BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT0描述符索引TIRPL選擇子確定描述符,描述符確定段基地址,段基地址與偏移之和就是線性地址。所以,虛擬地址空間中的由選擇子和偏移兩部分構(gòu)成的二維虛擬地址,就是這樣確定了線性地址空間中的一維線性地址。 選擇子的最低兩位是請求特權(quán)級RPL(Requested Privilege Level),用于特權(quán)檢查。 RPL字段的用法如下: 每當程序試圖訪問一個段時,要把當前特權(quán)級與所訪問段的特權(quán)級進行比較,以確定是否允許程序?qū)υ摱蔚脑L問。使用選擇子的RPL字段,將改變特權(quán)級的測試規(guī)則。在這種情況下,與所訪問段的特權(quán)級比較的特權(quán)級不是CPL,而是CPU與RPL中更外層的特權(quán)級。 CPL存放在CS寄存器的RPL字段內(nèi),每當一個代碼段選擇子裝入CS寄存器中時,處理器自動地把CPL存放到CS的RPL字段。 由于選擇子中的描述符索引字段用13位表示,所以可區(qū)分8192個描述符。這也就是描述符表最多包含8192個描述符的原因。由于每個描述符長8字節(jié),根據(jù)上表所示選擇子的格式,屏蔽選擇子低3位后所得的值就是選擇子所指定的描述符在描述符表中的偏移,這可認為是安排選擇子高13位作為描述符索引的原因。 有一個特殊的選擇子稱為空(Null)選擇子,它的Index=0,TI=0,而RPL字段可以為任意值。空選擇子有特定的用途,當用空選擇子進行存儲訪問時會引起異常??者x擇子是特別定義的,它不對應于全局描述符表GDT中的第0個描述符,因此處理器中的第0個描述符總不被處理器訪問,一般把它置成全0。但當TI=1時,Index為0的選擇子不是空選擇子,它指定了當前任務局部描述符表LDT中的第0個描述符。 五段描述符高速緩沖寄存器在實模式下,段寄存器含有段值,為訪問存儲器形成物理地址時,處理器引用相應的某個段寄存器并將其值乘以16,形成20位的段基地址。在保護模式下,段寄存器含有段選擇子,如上所述,為了訪問存儲器形成線性地址時,處理器要使用選擇子所指定的描述符中的基地址等信息。為了避免在每次存儲器訪問時,都要訪問描述符表而獲得對應的段描述符,從80286開始每個段寄存器都配有一個高速緩沖寄存器,稱之為段描述符高速緩沖寄存器或描述符投影寄存器,對程序員而言它是不可見的。每當把一個選擇子裝入到某個段寄存器時,處理器自動從描述符表中取出相應的描述符,把描述符中的信息保存到對應的高速緩沖寄存器中。此后對該段訪問時,處理器都使用對應高速緩沖寄存器中的描述符信息,而不用再從描述符表中取描述符。 各段描述符高速緩沖寄存器之內(nèi)容如下表所示。其中,32位段基地址直接取自描述符, 32位的段界限取自描述符中20位的段界限,并根據(jù)描述符屬性中的粒度位轉(zhuǎn)換成以字節(jié)為單位。其它十個特性根據(jù)描述符中的屬性而定,“Y”表示“是”,“N”表示“否” ,“R”表示必須可讀,“W”表示必須可寫,“P”表示必須存在,“D”表示根據(jù)描述符中屬性而定。 段描述符高速緩沖寄存器的內(nèi)容段寄存器段基地址段界限段屬性存在性特權(quán)級已存取粒度擴展方向可讀性可寫性可執(zhí)行堆棧大小一致特權(quán)CS32位基地址32位段界限PDDDDDNYDSS32位基地址32位段界限PDDDDRWNDDS32位基地址32位段界限PDDDDDDNES32位基地址32位段界限PDDDDDDNFS32位基地址32位段界限PDDDDDDNGS32位基地址32位段界限PDDDDDDN段描述符高速緩沖寄存器再處理器內(nèi),所以可對其進行快速訪問。絕大多數(shù)情況下,對存儲器的訪問是在對應選擇子裝入到段寄存器之后進行的,所以,使用段描述符高速緩沖寄存器可以得到很好的執(zhí)行性能。 段描述符高速緩沖寄存器之內(nèi)保存的描述符信息將一直保存到重新把選擇子裝載到段寄存器時再更新。程序員盡管不可見段描述符高速緩沖寄存器,但必須注意到它的存在和它的上述更新時機。例如,在改變了描述符表中的某個當前段的描述符后,也要更新對應的段描述符高速緩沖寄存器的內(nèi)容,即使段選擇子未作改變,這可通過重新裝載段寄存器實現(xiàn)。 80386控制寄存器和系統(tǒng)地址寄存器如下表所示。它們用于控制工作方式,控制分段管理機制及分頁管理機制的實施。 控制寄存器CRxBIT31BIT30—BIT12BIT11—BIT5BIT4BIT3BIT2BIT1BIT0CR0PG0000000000000000ETTSEMMPPECR1保留CR2頁故障線性地址CR3頁目錄表物理頁碼000000000000BIT47—BIT16BIT15—BIT0全局描述符表寄存器GDTR基地址界限中斷描述符表寄存器IDTR基地址界限BIT15—BIT0局部描述符表寄存器LDTR選擇子任務狀態(tài)段寄存器TR選擇子BIT31—BIT0BIT31—BIT0BIT11—BIT0基地址界限屬性基地址界限屬性一控制寄存器從上表可見,80386有四個32位的控制寄存器,分別命名位CR0、CRCR2和CR3。但CR1被保留,供今后開發(fā)的處理器使用,在80386中不能使用CR1,否則會引起無效指令操作異常。CR0包括指示處理器工作方式的控制位,包含啟用和禁止分頁管理機制的控制位,包含控制浮點協(xié)處理器操作的控制位。CR2及CR3由分頁管理機制使用。CR0中的位5—位30及CR3中的位0至位11是保留位,這些位不能是隨意值,必須為0。 控制寄存器CR0的低16位等同于80286的機器狀態(tài)字MSW。 控制寄存器CR0中的位0用PE標記,位31用PG標記,這兩個位控制分段和分頁管理機制的操作,所以把它們稱為保護控制位。PE控制分段管理機制。PE=0,處理器運行于實模式;PE=1,處理器運行于保護方式。PG控制分頁管理機制。PG=0,禁用分頁管理機制,此時分段管理機制產(chǎn)生的線性地址直接作為物理地址使用;PG=1,啟用分頁管理機制,此時線性地址經(jīng)分頁管理機制轉(zhuǎn)換位物理地址。關(guān)于分頁管理機制的具體介紹在后面的文章中進行。 下表列出了通過使用PE和PG位選擇的處理器工作方式。由于只有在保護方式下才可啟用分頁機制,所以盡管兩個位分別為0和1共可以有四種組合,但只有三種組合方式有效。PE=0且PG=1是無效組合,因此,用PG為1且PE為0的值裝入CR0寄存器將引起通用保護異常。 需要注意的是,PG位的改變將使系統(tǒng)啟用或禁用分頁機制,因而只有當所執(zhí)行的程序的代碼和至少有一部分數(shù)據(jù)在線性地址空間和物理地址空間具有相同的地址的情況下,才能改變PG位。 PG和PE位與處理器工作模式PGPE處理器工作方式00實模式01保護模式,禁用分頁機制10非法組合11保護方式,啟用分頁機制控制寄存器CR0中的位1—位4分別標記為MP(算術(shù)存在位)、EM(模擬位)、TS(任務切換位) 和ET(擴展類型位),它們控制浮點協(xié)處理器的操作。 當處理器復位時,ET位被初始化,以指示系統(tǒng)中數(shù)字協(xié)處理器的類型。如果系統(tǒng)中存在 80387協(xié)處理器,那么ET位置1;如果系統(tǒng)中存在80287協(xié)處理器或者不存在協(xié)處理器,那么ET位清0。 EM位控制浮點指令的執(zhí)行是用軟件模擬,還是由硬件執(zhí)行。EM=0時,硬件控制浮點指令傳送到協(xié)處理器;EM=1時,浮點指令由軟件模擬。 TS位用于加快任務的切換,通過在必要時才進行協(xié)處理器切換的方法實現(xiàn)這一目的。每當進行任務切換時,處理器把TS置1。TS=1時,浮點指令將產(chǎn)生設備不可用(DNA)異常。 MP位控制WAIT指令在TS=1時,是否產(chǎn)生DNA異常。MP=1和TS=1時,WAIT產(chǎn)生異常;MP=0時,WAIT指令忽略TS條件,不產(chǎn)生異常。 控制寄存器CR2和CR3由分頁管理機制使用。 CR2用于發(fā)生頁異常時報告出錯信息。當發(fā)生頁異常時,處理器把引起頁異常的線性地址保存在CR2中。操作系統(tǒng)中的頁異常處理程序可以檢查CR2的內(nèi)容,從而查出線性地址空間中的哪一頁引起本次異常。 CR3用于保存頁目錄表的其始物理地址。由于目錄是頁對齊的,所以僅高20位有效,低12 位保留未用。向CR3中裝入一個新值時,低12位必須為0;但從CR3中取值時,低12位被忽略。每當用MOV指令重置CR3的值時,會導致分頁機制高速緩沖區(qū)的內(nèi)容無效,用此方法,可以在啟用分頁機制之前,即把PG位置1之前,預先刷新分頁機制的高速緩存。CR3寄存器即使在CR0寄存器的PG位或PE位為0時也可裝入,如在實模式下也可設置CR3,以便進行分頁機制的初始化。在任務切換時,CR3要被改變,但是如果新任務中CR3的值與原任務中CR3的值相同,那么處理器不刷新分頁高速緩存,以便當任務共享也表時有較快的執(zhí)行速度。 二系統(tǒng)地址寄存器全局描述符表GDT、局部描述符表LDT和中斷描述符表IDT等都是保護方式下非常重要的特殊段,它們包含有為段機制所用的重要表格。為了方便快速地定位這些段,處理器采用一些特殊的寄存器保存這些段的基地址和段界限。我們把這些特殊的寄存器稱為系統(tǒng)地址寄存器。 如本文開始處的表格所示,GDTR長48位,其中高32位為基地址,低16位為界限。由于GDT 不能有GDT本身之內(nèi)的描述符進行描述定義,所以處理器采用GDTR為GDT這一特殊的系統(tǒng)段提供一個偽描述符。GDTR給定了GDT,如下圖所示。 GDTR中的段界限以字節(jié)為單位。由于段選擇子中只有13位作為描述符索引,而每個描述符長8個字節(jié),所以用16位的界限足夠。通常,對于含有N個描述符的描述符表的段界限設為8*N1。 利用結(jié)構(gòu)類型可定義偽描述符如下: PDESC STRUC LIMIT DW 0 BASE DD 0 PDESC ENDS局部描述符表寄存器LDTR規(guī)定當前任務使用的局部描述符表LDT。如本文開始處的表格所示,LDTR類似于段寄存器,由程序員可見的16位的寄存器和程序員不可見的高速緩沖寄存器組成。實際上,每個任務的局部描述符表LDT作為系統(tǒng)的一個特殊段,由一個描述符描述。而用于描述符LDT的描述符存放在GDT中。在初始化或任務切換過程中,把描述符對應任務LDT的描述符的選擇子裝入LDTR,處理器根據(jù)裝入LDTR可見部分的選擇子,從GDT中取出對應的描述符,并把LDT的基地址、界限和屬性等信息保存到LDTR的不可見的高速緩沖寄存器中。隨后對LDT的訪問,就可根據(jù)保存在高速緩沖寄存器中的有關(guān)信息進行合法性檢查。 LDTR寄存器包含當前任務的LDT的選擇子。所以,裝入到LDTR的選擇子必須確定一個位于GDT中的類型為LDT的系統(tǒng)段描述符,也即選擇子中的TI位必須是0,而且描述符中的類型字段所表示的類型必須為LDT。 可以用一個空選擇子裝入LDTR,這表示當前任務沒有LDT。在這種情況下,所有裝入到段寄存器的選擇子都必須指示GDT中的描述符,也即當前任務涉及的段均由GDT中的描述符來描述。如果再把一個TI位為1的選擇子裝入到段寄存器,將引起異常。 中斷描述符表寄存器IDTR指向中斷描述符表IDT。如本文開始處的表格所示,IDTR長48 位,其中32位的基地址規(guī)定IDT的基地址,16位的界限規(guī)定IDT的段界限。由于80386只支持256個中斷/異常,所以IDT表最大長度是2K,以字節(jié)位單位的段界限為7FFH。IDTR 指示IDT的方式與GDTR指示GDT的方式相同。 任務狀態(tài)段寄存器TR包含指示描述當前任務的任務狀態(tài)段的描述符選擇子,從而規(guī)定了當前任務的狀態(tài)段。任務狀態(tài)段的格式在后面的文章中介紹。如本文開始處的表格所示,TR也有程序員可見和不可見兩部分。當把任務狀態(tài)段的選擇子裝入到TR可見部分時,處理器自動把選擇子所索引的描述符中的段基地址等信息保存到不可見的高速緩沖寄存器中。在此之后,對當前任務狀態(tài)段的訪問可快速方便地進行。裝入到TR的選擇子不能為空,必須索引位于GDT中的描述符,且描述符的類型必須是TSS。 本文介紹兩個實現(xiàn)實模式與保護模式切換的實例,通過他們說明如何實現(xiàn)實模式與保護模式的切換, 也說明保護模式下的80386及其編程。 一演示實模式和保護模式切換的實例(實例一)實例一的邏輯功能是,以十六進制數(shù)的形式顯示從內(nèi)存地址110000H開始的256個字節(jié)的值。本實例指定該內(nèi)存區(qū)域的目的僅僅是想說明切換到保護模式的必要性,因為在實模式下不能訪問該指定內(nèi)存區(qū)域,只有在保護模式下才能訪問到該指定區(qū)域。 本實例的具體實現(xiàn)步驟是:(1)作切換到保護方式的準備;(2)切換到保護方式;(3)把指定內(nèi)存區(qū)域的內(nèi)容傳送到位于常規(guī)內(nèi)存的緩沖區(qū)中;(4)切換回實模式;(5)顯示緩
點擊復制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1