資源描述:
《控制寄存器和系統(tǒng)地址寄存器》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、二.控制寄存器和系統(tǒng)地址寄存器80386控制寄存器和系統(tǒng)地址寄存器如下表所示。它們用于控制工作方式,控制分段管理機制及分頁管理機制的實施????制寄存器CRxBIT31BIT30—BIT12BIT11—BIT5BIT4BIT3BIT2BIT1BIT0CR0PG0000000000000000ETTSEMMPPECR1保留CR2頁故障線性地址CR3頁目錄表物理頁碼000000000000?BIT47—BIT16BIT15—BIT0全局描述符表寄存器GDTR基地址界限中斷描述符表寄存器IDTR基地址界限?BIT15—BIT0局部描述符表寄存器LDTR選擇子任務(wù)狀態(tài)段寄存器TR選擇子BIT31—
2、BIT0BIT31—BIT0BIT11—BIT0基地址界限屬性基地址界限屬性<一>控制寄存器從上表可見,80386有四個32位的控制寄存器,分別命名位CR0、CR1、CR2和CR3。但CR1被保留,供今后開發(fā)的處理器使用,在80386中不能使用CR1,否則會引起無效指令操作異常。CR0包括指示處理器工作方式的控制位,包含啟用和禁止分頁管理機制的控制位,包含控制浮點協(xié)處理器操作的控制位。CR2及CR3由分頁管理機制使用。CR0中的位5—位30及CR3中的位0至位11是保留位,這些位不能是隨意值,必須為0??刂萍拇嫫鰿R0的低16位等同于80286的機器狀態(tài)字MSW。1.保護控制位控制寄存器C
3、R0中的位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是無效組合,
4、因此,用PG為1且PE為0的值裝入CR0寄存器將引起通用保護異常。需要注意的是,PG位的改變將使系統(tǒng)啟用或禁用分頁機制,因而只有當所執(zhí)行的程序的代碼和至少有一部分數(shù)據(jù)在線性地址空間和物理地址空間具有相同的地址的情況下,才能改變PG位。PG和PE位與處理器工作模式PGPE處理器工作方式00實模式01保護模式,禁用分頁機制10非法組合11保護方式,啟用分頁機制2.協(xié)處理器控制位控制寄存器CR0中的位1—位4分別標記為MP(算術(shù)存在位)、EM(模擬位)、TS(任務(wù)切換位)和ET(擴展類型位),它們控制浮點協(xié)處理器的操作。當處理器復(fù)位時,ET位被初始化,以指示系統(tǒng)中數(shù)字協(xié)處理器的類型。如果系統(tǒng)中存
5、在80387協(xié)處理器,那么ET位置1;如果系統(tǒng)中存在80287協(xié)處理器或者不存在協(xié)處理器,那么ET位清0。EM位控制浮點指令的執(zhí)行是用軟件模擬,還是由硬件執(zhí)行。EM=0時,硬件控制浮點指令傳送到協(xié)處理器;EM=1時,浮點指令由軟件模擬。TS位用于加快任務(wù)的切換,通過在必要時才進行協(xié)處理器切換的方法實現(xiàn)這一目的。每當進行任務(wù)切換時,處理器把TS置1。TS=1時,浮點指令將產(chǎn)生設(shè)備不可用(DNA)異常。MP位控制WAIT指令在TS=1時,是否產(chǎn)生DNA異常。MP=1和TS=1時,WAIT產(chǎn)生異常;MP=0時,WAIT指令忽略TS條件,不產(chǎn)生異常。3.CR2和CR3控制寄存器CR2和CR3由分頁
6、管理機制使用。CR2用于發(fā)生頁異常時報告出錯信息。當發(fā)生頁異常時,處理器把引起頁異常的線性地址保存在CR2中。操作系統(tǒng)中的頁異常處理程序可以檢查CR2的內(nèi)容,從而查出線性地址空間中的哪一頁引起本次異常。CR3用于保存頁目錄表的其始物理地址。由于目錄是頁對齊的,所以僅高20位有效,低12位保留未用。向CR3中裝入一個新值時,低12位必須為0;但從CR3中取值時,低12位被忽略。每當用MOV指令重置CR3的值時,會導(dǎo)致分頁機制高速緩沖區(qū)的內(nèi)容無效,用此方法,可以在啟用分頁機制之前,即把PG位置1之前,預(yù)先刷新分頁機制的高速緩存。CR3寄存器即使在CR0寄存器的PG位或PE位為0時也可裝入,如在
7、實模式下也可設(shè)置CR3,以便進行分頁機制的初始化。在任務(wù)切換時,CR3要被改變,但是如果新任務(wù)中CR3的值與原任務(wù)中CR3的值相同,那么處理器不刷新分頁高速緩存,以便當任務(wù)共享也表時有較快的執(zhí)行速度。<二>系統(tǒng)地址寄存器全局描述符表GDT、局部描述符表LDT和中斷描述符表IDT等都是保護方式下非常重要的特殊段,它們包含有為段機制所用的重要表格。為了方便快速地定位這些段,處理器采用一些特殊的寄存器保存這些段的基地址和段界限