80x86寄存器
?
【80x86寄存器】
32位CPU所含有的寄存器有:
?4個(gè)32位通用寄存器(EAX、EBX、ECX和EDX)
?2個(gè)32位變址和指針寄存器(ESI和EDI) 2個(gè)32位指針寄存器(ESP和EBP)
?6個(gè)[16位(段選擇符)+隱藏部分(描述符緩沖)]段寄存器(ES、CS、SS、DS、FS和GS)
?1個(gè)32位指令指針寄存器(EIP) 1個(gè)32位標(biāo)志寄存器(EFlags)
?2個(gè)48位系統(tǒng)表寄存器(GDTR、IDTR)和2個(gè)[16位(選擇符)+隱藏部分(描述符緩沖)](LDTR、TR)
?5個(gè)32位控制寄存器(CR0~ CR4),CR4是從Pentium CPU開(kāi)始出現(xiàn)的
?8個(gè)32位調(diào)試寄存器(DR0~ DR7)
?8個(gè)32位測(cè)試寄存器(TR0~TR7)
?
1、通用寄存器
主要用來(lái)保存操作數(shù)和運(yùn)算結(jié)果等信息。
?
32位CPU有4個(gè)32位通用寄存器EAX、EBX、ECX和EDX。
對(duì)于低16位數(shù)據(jù)的存取,不會(huì)影響高16位的數(shù)據(jù)。這些低16位的寄存器分別命名為:AX、BX、CX和DX,它和先前的CPU中的寄存器相一致。
4個(gè)16位寄存器又可分割成8個(gè)獨(dú)立的8位寄存器(AX:AH-AL、BX:BH-BL、CX:CH-CL、DX:DH-DL),每個(gè)寄存器都有自己的名稱,可獨(dú)立存取。程序員可利用數(shù)據(jù)寄存器的這種“可分可合”的特性,靈活地處理字/字節(jié)的信息。
?
AX和AL通常稱為累加器(Accumulator):可用于乘、除、輸入/輸出等操作(在乘除指令中指定用來(lái)存放操作數(shù))
BX稱為基地址寄存器(Base Register):在計(jì)算存儲(chǔ)器地址時(shí),可作為基址寄存器使用。
CX稱為計(jì)數(shù)寄存器(Count Register):用來(lái)保存計(jì)數(shù)值,如在移位指令、循環(huán)指令和串處理指令中用作隱含的計(jì)數(shù)器(當(dāng)移多位時(shí),要用CL來(lái)指明移位的位數(shù))。DX在作雙字長(zhǎng)運(yùn)算時(shí),可把DX和AX組合在一起存放一個(gè)雙字長(zhǎng)數(shù),DX用來(lái)存放高16位數(shù)據(jù)。此外,對(duì)某些I/O操作,DX可用來(lái)存放I/O的端口地址。
DX稱為數(shù)據(jù)寄存器(Data Register)。在進(jìn)行乘、除運(yùn)算時(shí),它可作為默認(rèn)的操作數(shù)參與運(yùn)算,也可用于存放I/O的端口地址。
在16位CPU中,AX、BX、CX和DX不能作為基址和變址寄存器來(lái)存放存儲(chǔ)單元的地址,但在32位CPU中,其32位寄存器EAX、EBX、ECX和EDX不僅可傳送數(shù)據(jù)、暫存數(shù)據(jù)保存算術(shù)邏輯運(yùn)算結(jié)果,而且也可作為指針寄存器,所以,這些32位寄存器更具有通用性。
?????????????
2、 變址寄存器
32位CPU有2個(gè)32位通用寄存器ESI和EDI。其低16位對(duì)應(yīng)于先前CPU的SI和DI,對(duì)低16位數(shù)據(jù)的存取,不影響高16位數(shù)據(jù)。
寄存器ESI、EDI、SI和DI稱為變址寄存器(Index Register),它們主要用于存放存儲(chǔ)單元在段內(nèi)的偏移量,用它們可實(shí)現(xiàn)多種存儲(chǔ)器操作數(shù)的尋址方式,為以不同的地址形式訪問(wèn)存儲(chǔ)單元提供方便。
變址寄存器不可分割成8位寄存器。作為通用寄存器,也可存儲(chǔ)算術(shù)邏輯運(yùn)算的操作數(shù)和運(yùn)算結(jié)果。
它們可作一般的存儲(chǔ)器指針使用。在字符串操作指令的執(zhí)行過(guò)程中,對(duì)它們有特定的要求,而且還具有特殊的功能。
?
3、 指針寄存器
32位CPU有2個(gè)32位通用寄存器EBP和ESP。其低16位對(duì)應(yīng)先前CPU中的SBP和SP,對(duì)低16位數(shù)據(jù)的存取,不影響高16位的數(shù)據(jù)。
寄存器EBP、ESP、BP和SP稱為指針寄存器(Pointer Register),主要用于存放堆棧內(nèi)存儲(chǔ)單元的偏移量,用它們可實(shí)現(xiàn)多種存儲(chǔ)器操作數(shù)的尋址方式,為以不同的地址形式訪問(wèn)存儲(chǔ)單元提供方便。
指針寄存器不可分割成8位寄存器。作為通用寄存器,也可存儲(chǔ)算術(shù)邏輯運(yùn)算的操作數(shù)和運(yùn)算結(jié)果。
它們主要用于訪問(wèn)堆棧內(nèi)的存儲(chǔ)單元,并且規(guī)定:
BP為基指針(Base Pointer)寄存器,用它可直接存取堆棧中的數(shù)據(jù);
SP為堆棧指針(Stack Pointer)寄存器,用它只可訪問(wèn)棧頂。
?
4、 段寄存器(基址寄存器)
段寄存器是根據(jù)內(nèi)存分段的管理模式而設(shè)置的,可用于動(dòng)態(tài)重定位。內(nèi)存單元的物理地址由段寄存器的值和一個(gè)偏移量組合而成的,這樣可用兩個(gè)較少位數(shù)的值組合成一個(gè)可訪問(wèn)較大物理空間的內(nèi)存地址。
CPU內(nèi)部的段寄存器:
CS——代碼段寄存器(Code Segment Register),其值為代碼段的段值;
DS——數(shù)據(jù)段寄存器(Data Segment Register),其值為數(shù)據(jù)段的段值;
ES——附加段寄存器(Extra Segment Register),其值為附加數(shù)據(jù)段的段值;
SS——堆棧段寄存器(Stack Segment Register),其值為堆棧段的段值;
FS——附加段寄存器(Extra Segment Register),其值為附加數(shù)據(jù)段的段值;
GS——附加段寄存器(Extra Segment Register),其值為附加數(shù)據(jù)段的段值。
段寄存器作目的操作數(shù)時(shí),源操作數(shù)不能是立即數(shù);CS不能作為目的操作數(shù)
在16位CPU系統(tǒng)中,它只有4個(gè)段寄存器,所以,程序在任何時(shí)刻至多有4個(gè)正在使用的段可直接訪問(wèn);在32位微機(jī)系統(tǒng)中,它有6個(gè)段寄存器,所以,在此環(huán)境下開(kāi)發(fā)的程序最多可同時(shí)訪問(wèn)6個(gè)段。
32位CPU有兩個(gè)不同的工作方式:實(shí)方式和保護(hù)方式。在每種方式下,段寄存器的作用是不同的。有關(guān)規(guī)定簡(jiǎn)單描述如下:實(shí)方式: 前4個(gè)段寄存器CS、DS、ES和SS與先前CPU中的所對(duì)應(yīng)的段寄存器的含義完全一致,內(nèi)存單元的邏輯地址仍為“段值:偏移量”的形式。為訪問(wèn)某內(nèi)存段內(nèi)的數(shù)據(jù),必須使用該段寄存器和存儲(chǔ)單元的偏移量。保護(hù)方式: 在此方式下,情況要復(fù)雜得多,裝入段寄存器的不再是段值,而是稱為“選擇子”(Selector)的某個(gè)值。[如:在linux-0.11中,CS存儲(chǔ)的是段描述符。段描述符的0、1位(右數(shù),從0開(kāi)始)表示特權(quán)等級(jí),2位表示是選擇全局描述符表(GDT)還是局部描述符表(LDT),3位至更高有效位表示選擇GDT(或是LDT)表中的第(n+1)項(xiàng)(表項(xiàng)從0開(kāi)始)。]
?
5、 指令指針寄存器
32位CPU把指令指針擴(kuò)展到32位,并記作EIP,EIP的低16位與先前CPU中的IP作用相同。
指令指針EIP、IP(Instruction Pointer)是存放下次將要執(zhí)行的指令在代碼段的偏移量。在具有預(yù)取指令功能的系統(tǒng)中,下次要執(zhí)行的指令通常已被預(yù)取到指令隊(duì)列中,除非發(fā)生轉(zhuǎn)移情況。所以,在理解它們的功能時(shí),不考慮存在指令隊(duì)列的情況。
在實(shí)方式下,由于每個(gè)段的最大范圍為64K,所以,EIP中的高16位肯定都為0,此時(shí),相當(dāng)于只用其低16位的IP來(lái)反映程序中指令的執(zhí)行次序。
?
6、標(biāo)志寄存器
一、運(yùn)算結(jié)果標(biāo)志位
1、進(jìn)位標(biāo)志CF(Carry Flag)[對(duì)無(wú)符號(hào)數(shù)有意義的標(biāo)志位]
???????????????????????? 進(jìn)位標(biāo)志CF主要用來(lái)反映無(wú)符號(hào)數(shù)運(yùn)算時(shí)是否產(chǎn)生進(jìn)位或借位。如果運(yùn)算結(jié)果的最高位產(chǎn)生了一個(gè)進(jìn)位或借位,那么,其值為1,否則其值為0。
???????????????????????? 使用該標(biāo)志位的情況有:多字(字節(jié))數(shù)的加減運(yùn)算,無(wú)符號(hào)數(shù)的大小比較運(yùn)算,移位操作,字(字節(jié))之間移位,專門(mén)改變CF值的指令等。
2、奇偶標(biāo)志PF(Parity Flag)
???????????????????????? 奇偶標(biāo)志PF用于反映運(yùn)算結(jié)果中“1”的個(gè)數(shù)的奇偶性。如果“1”的個(gè)數(shù)為偶數(shù),則PF的值為1,否則其值為0。
???????????????????????? 利用PF可進(jìn)行奇偶校驗(yàn)檢查,或產(chǎn)生奇偶校驗(yàn)位。在數(shù)據(jù)傳送過(guò)程中,為了提供傳送的可靠性,如果采用奇偶校驗(yàn)的方法,就可使用該標(biāo)志位。
3、輔助進(jìn)位標(biāo)志AF(Auxiliary Carry Flag)
???????????????????????? 在發(fā)生下列情況時(shí),輔助進(jìn)位標(biāo)志AF的值被置為1,否則其值為0:
?????????????????????????????????????? (1)、在字操作時(shí),發(fā)生低字節(jié)向高字節(jié)進(jìn)位或借位時(shí);
?????????????????????????????????????? (2)、在字節(jié)操作時(shí),發(fā)生低4位向高4位進(jìn)位或借位時(shí)。
???????????????????????? 對(duì)以上6個(gè)運(yùn)算結(jié)果標(biāo)志位,在一般編程情況下,標(biāo)志位CF、ZF、SF和OF的使用頻率較高,而標(biāo)志位PF和AF的使用頻率較低。
4、零標(biāo)志ZF(Zero Flag)
???????????????????????? 零標(biāo)志ZF用來(lái)反映運(yùn)算結(jié)果是否為0。如果運(yùn)算結(jié)果為0,則其值為1,否則其值為0。在判斷運(yùn)算結(jié)果是否為0時(shí),可使用此標(biāo)志位。
5、符號(hào)標(biāo)志SF(Sign Flag)
???????????????????????? 符號(hào)標(biāo)志SF用來(lái)反映運(yùn)算結(jié)果的符號(hào)位,它與運(yùn)算結(jié)果的最高位相同。在微機(jī)系統(tǒng)中,有符號(hào)數(shù)采用補(bǔ)碼表示法,所以,SF也就反映運(yùn)算結(jié)果的正負(fù)號(hào)。運(yùn)算結(jié)果為正數(shù)時(shí),SF的值為0,否則其值為1。
???????????????????????? CPU在執(zhí)行ADD等指令的時(shí)候,就已經(jīng)包含了2種含義。若我們將數(shù)據(jù)當(dāng)做無(wú)符號(hào)數(shù),則SF的值沒(méi)有意義,雖然相關(guān)指令影響了它的值。
6、溢出標(biāo)志OF(Overflow Flag)[對(duì)有符號(hào)數(shù)有意義的標(biāo)志位]
???????????????????????? 溢出標(biāo)志OF用于反映有符號(hào)數(shù)加減運(yùn)算所得結(jié)果是否溢出。如果運(yùn)算結(jié)果超過(guò)當(dāng)前運(yùn)算位數(shù)所能表示的范圍,則稱為溢出,OF的值被置為1,否則,OF的值被清為0。?????????????????? “溢出”和“進(jìn)位”是兩個(gè)不同含義的概念,不要混淆。如果不太清楚的話,請(qǐng)查閱《計(jì)算機(jī)組成原理》課程中的有關(guān)章節(jié)。
二、狀態(tài)控制標(biāo)志位
狀態(tài)控制標(biāo)志位是用來(lái)控制CPU操作的,它們要通過(guò)專門(mén)的指令才能使之發(fā)生改變。
1、追蹤標(biāo)志TF(Trap Flag)
???????????????????????? 當(dāng)追蹤標(biāo)志TF被置為1時(shí),CPU進(jìn)入單步執(zhí)行方式,即每執(zhí)行一條指令,產(chǎn)生一個(gè)單步中斷請(qǐng)求。這種方式主要用于程序的調(diào)試。
???????????????????????? 指令系統(tǒng)中沒(méi)有專門(mén)的指令來(lái)改變標(biāo)志位TF的值,但程序員可用其它辦法來(lái)改變其值。
2、中斷允許標(biāo)志IF(Interrupt-enable Flag)
???????????????????????? 中斷允許標(biāo)志IF是用來(lái)決定CPU是否響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請(qǐng)求。但不管該標(biāo)志為何值,CPU都必須響應(yīng)CPU外部的不可屏蔽中斷所發(fā)出的中斷請(qǐng)求,以及CPU內(nèi)部產(chǎn)生的中斷請(qǐng)求。具體規(guī)定如下:
?????????????????????????????????????? (1)、當(dāng)IF=1時(shí),CPU可以響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請(qǐng)求;
?????????????????????????????????????? (2)、當(dāng)IF=0時(shí),CPU不響應(yīng)CPU外部的可屏蔽中斷發(fā)出的中斷請(qǐng)求。
???????????????????????? 使用sti指令可將IF位置為1[開(kāi)中斷];使用cli指令置為0[關(guān)中斷]
3、方向標(biāo)志DF(Direction Flag)
???????????????????????? DF,方向標(biāo)志位。在串處理指令中,控制每次操作后SI,DI的增減
???????????????????????? DF = 0,則每次操作后si,di遞增;否則遞減
???????????????????????? 使用cld指令將DF位置為0;使用std指令置為1;DF位默認(rèn)為0
???????????????????????? 常與串傳送指令movsb,movsw,rep配合使用
三、32位標(biāo)志寄存器增加的標(biāo)志位
1、I/O特權(quán)標(biāo)志IOPL(I/O Privilege Level)
???????????????????????? I/O特權(quán)標(biāo)志用兩位二進(jìn)制位來(lái)表示,也稱為I/O特權(quán)級(jí)字段。該字段指定了要求執(zhí)行I/O指令的特權(quán)級(jí)。如果當(dāng)前的特權(quán)級(jí)別在數(shù)值上小于等于IOPL的值,那么,該I/O指令可執(zhí)行,否則將發(fā)生一個(gè)保護(hù)異常。
2、嵌套任務(wù)標(biāo)志NT(Nested Task)
???????????????????????? 在保護(hù)模式下,指示當(dāng)前執(zhí)行的任務(wù)嵌套于另一任務(wù)中。控制中斷返回指令I(lǐng)RET的執(zhí)行。具體規(guī)定如下:
?????????????????????????????????????? (1)、當(dāng)NT=0,任務(wù)不被嵌套,用堆棧中保存的值恢復(fù)EFLAGS、CS和EIP,執(zhí)行常規(guī)的中斷返回操作;
?????????????????????????????????????? (2)、當(dāng)NT=1,任務(wù)被嵌套,通過(guò)任務(wù)轉(zhuǎn)換實(shí)現(xiàn)中斷返回。
3、重啟動(dòng)標(biāo)志RF(Restart Flag)
???????????????????????? 重啟動(dòng)標(biāo)志RF用來(lái)控制是否接受調(diào)試故障。規(guī)定:RF=0時(shí),表示“接受”調(diào)試故障,否則拒絕之。在成功執(zhí)行完一條指令后,處理機(jī)把RF置為0,當(dāng)接受到一個(gè)非調(diào)試故障時(shí),處理機(jī)就把它置為1,中國(guó)自學(xué)編程網(wǎng)整理發(fā)布!。
4、虛擬8086方式標(biāo)志VM(Virtual 8086 Mode)
???????????????????????? 如果該標(biāo)志的值為1,則表示處理機(jī)處于虛擬的8086方式下的工作狀態(tài),否則,處理機(jī)處于一般保護(hù)方式下的工作狀態(tài)。
?
7、 系統(tǒng)表寄存器
80386 中有4個(gè)系統(tǒng)表寄存器,分別是全局描述符表寄存器(GDTR)、中斷描述符表寄存器(IDTR)、局部描述符表寄存器(LDTR)、任務(wù)狀態(tài)寄存器(TR)。系統(tǒng)表寄存器用于在保護(hù)方式下,管理4 個(gè)系統(tǒng)表,由于只能在保護(hù)方式下使用,因此又稱為保護(hù)方式寄存器。有關(guān)描述附表的問(wèn)題,另文介紹。
?
8、控制寄存器
80386的控制寄存器有4個(gè),其中CR1保留以后使用,從Pentium開(kāi)始,又增加了一個(gè)CR4,CR0的低16位包含了與80286的MSW一致的位定義,保持了和80286的兼容,同時(shí)也兼容了從80286開(kāi)始的兩條指令LMSW/SMSW,其基本定義如下:
?CR0中各位含義如下:
- PE(Protection Enable)保護(hù)模式允許,PE=0表示CPU工作在實(shí)模式,PE=1表示CPU工作在保護(hù)模式
- MP(Monitor Coprocessor)監(jiān)控協(xié)處理器,MP=1表示協(xié)處理器在工作,MP=0表示協(xié)處理器未工作。
- EM(Emulation)協(xié)處理器仿真,當(dāng)MP=0,EM=1時(shí),表示正在使用軟件仿真協(xié)處理器工作。
- TS(Task Switched)任務(wù)轉(zhuǎn)換,每當(dāng)進(jìn)行任務(wù)轉(zhuǎn)換時(shí),TS=1,任務(wù)轉(zhuǎn)換完畢,TS=0。TS=1時(shí)不允許協(xié)處理器工作。
??? 以上4個(gè)定義從80286開(kāi)始,下面的2個(gè)定義從80386開(kāi)始存在:
- ET(Extension Type)處理器擴(kuò)展類型,反映了所擴(kuò)展的協(xié)處理器的類型,ET=0為80287,ET=1為80387。
- PG(Paging)頁(yè)式管理機(jī)制使能,PG=1時(shí)頁(yè)式管理機(jī)制工作,否則不工作。
??? 從80486開(kāi)始又增加了如下位定義:
- NE(Numeric Error)數(shù)值異常中斷控制,NE=1時(shí),如果運(yùn)行協(xié)處理器指令發(fā)生故障,則用異常中斷處理,NE=0時(shí),則用外部中斷處理。
- WP(Write Protect)寫(xiě)保護(hù),當(dāng)WP=1時(shí),對(duì)只讀頁(yè)面進(jìn)行寫(xiě)操作會(huì)產(chǎn)生頁(yè)故障。
- AM(Alignment Mask)對(duì)齊標(biāo)志,AM=1時(shí),允許對(duì)齊檢查,AM=0時(shí)不允許,關(guān)于對(duì)齊,在EFLAGS的AC標(biāo)志時(shí)介紹過(guò),在80486以后的CPU中,CPU進(jìn)行對(duì)齊檢查需要滿足三個(gè)條件,AC=1、AM=1并且當(dāng)前特權(quán)級(jí)為3。
- NW(Not Write-through)和CD(Cache Disable),這兩個(gè)標(biāo)志都是用來(lái)控制CPU內(nèi)部的CACHE的,當(dāng)NW=0且CD=0時(shí),CACHE使能,其它的組合說(shuō)起來(lái)比較復(fù)雜,如果有讀者真的想搞清楚的話,可以參閱《Intel? 64 and IA-32 Architectures》中的“Software Developer’s Manual Volume 3A”這一冊(cè),在第10章對(duì)這兩個(gè)標(biāo)志的各種組合有比較詳細(xì)的說(shuō)明。
?
CR1保留未用;CR2存放引起頁(yè)故障的線性地址,只有在PG=1時(shí),CR2才有效,當(dāng)頁(yè)故障處理程序被激活時(shí),壓入頁(yè)故障處理程序堆棧中的錯(cuò)誤碼提供頁(yè)故障的狀態(tài)信息。
? ? CR3的bit12--bit31存放頁(yè)目錄的基地址,因?yàn)橐材夸浛偸琼?yè)對(duì)齊的(一頁(yè)為4K),所以頁(yè)目錄基地址從bit12開(kāi)始就可以了。只有當(dāng)CR0中的PG=1時(shí),CR3的頁(yè)目錄基地址才有效。
? ??從80486開(kāi)始,在CR3的低12位定義了兩個(gè)控制位,如下:
- PCD(Page-level Cache Disable)頁(yè)CACHE禁止,當(dāng)PCD=0時(shí),頁(yè)目錄表進(jìn)行高速緩存,PCD=1時(shí),不進(jìn)行高速緩存;該位控制PCD引腳控制外部CACHE工作還是不工作。
- PWT(Page-level Writes Transparent),CACHE的寫(xiě)入分為透寫(xiě)(Write-Through)和回寫(xiě)(Write-Back),80486以上的CPU內(nèi)部的CACHE都是透寫(xiě)的,但對(duì)外部CACHE而言,允許某些頁(yè)是回寫(xiě)的,而另一些頁(yè)是透寫(xiě)的,當(dāng)PWT=1時(shí),外部CACHE對(duì)頁(yè)目錄進(jìn)行透寫(xiě),否則進(jìn)行回寫(xiě);此位驅(qū)動(dòng)PWT引腳以控制外部CACHE是透寫(xiě)還是回寫(xiě)。
?
? ??CR4是從Pentium CPU開(kāi)始出現(xiàn)的:
- VME(Virtual-8086 Mode Extensions)虛擬8086方式擴(kuò)展,VME=1允許使用虛擬8086擴(kuò)展模式,否則只能使用80386/80486的虛擬8086模式。
- PVI(Protected-Mode Virtual Interrupts)保護(hù)模式虛擬中斷,PVI=1時(shí),在保護(hù)模式下支持虛擬中斷標(biāo)志VIF(EFLAGS中),PVI=0則不支持虛擬中斷標(biāo)志。
- TSD(Time Stamp Disable)時(shí)間戳禁止,TSD=1時(shí),允許在特權(quán)級(jí)為0的程序中執(zhí)行RDTSC指令(讀時(shí)間戳計(jì)數(shù)指令),TSD=0時(shí),允許任何特權(quán)級(jí)執(zhí)行RDTSC指令。
- DE(Debugging Extensions)調(diào)試擴(kuò)展,
- PSE(Page Size Extensions)頁(yè)大小擴(kuò)展,PSE=1時(shí),頁(yè)大小可以擴(kuò)展到2M或4M,PSE=0時(shí),頁(yè)大小只能是4K.
- PAE(Physical Address Extension)物理地址擴(kuò)展,PAE=1時(shí),頁(yè)物理地址可以擴(kuò)展到36bits以上,PAE=0時(shí)只能用32bits的物理地址。
- MCE(Machine-Check Enable)硬件檢查使能,Pentium以后的CPU有一種硬件檢測(cè)功能,MCE=1時(shí)允許使用該功能。
- PGE(Page Global Enable)全局頁(yè)使能,PGE=1時(shí),允許使用全局頁(yè),PGE=0時(shí)禁止使用全局頁(yè)。
- PCE(Performance-Monitoring Counter Enable)性能監(jiān)視計(jì)數(shù)器使能,當(dāng)PCE=1時(shí),允許在任何保護(hù)級(jí)下執(zhí)行RDPMC指令,PCE=0時(shí),只有特權(quán)級(jí)0的程序可以執(zhí)行RDPMC指令。
- OSFXSR(Operating System Support for FXSAVE and FXRSTOR instructions)
- OSXMMEXCPT(Operating System Support for Unmasked SIMD Floating-Point Exceptions)
- VMXE(VMX-Enable Bit)VMX使能位,VMXE=1時(shí),允許VMX操作。
- SMXE(SMX-Enable Bit)SMX使能位,SMXE=1時(shí),允許SMX操作。
- OSXSAVE(XSAVE and Processor Extended States-Enable Bit)
?
9、調(diào)試寄存器
一共有8個(gè)調(diào)試寄存器DR0--DR7,DR0-DR3可以分別設(shè)置4個(gè)斷點(diǎn)的線性地址,DR4-DR5保留未用,DR6是斷點(diǎn)狀態(tài)寄存器,DR7是斷點(diǎn)控制寄存器(包括斷點(diǎn)類型、斷點(diǎn)長(zhǎng)度,斷點(diǎn)開(kāi)放/禁止)
?
10、測(cè)試寄存器
一共有8個(gè)測(cè)試寄存器TR0--TR7,TR0-TR2保留,TR3-TR5用作CACHE測(cè)試。TR6和TR7用于在轉(zhuǎn)換旁視緩沖器(Translation Lookaside Buffer)中測(cè)試隨機(jī)存儲(chǔ)器(RAM)和相聯(lián)存儲(chǔ)器(CAM),TR6為測(cè)試命令寄存器,其內(nèi)存放測(cè)試控制命令, TR7為測(cè)試數(shù)據(jù)寄存器,其內(nèi)保存轉(zhuǎn)換旁路緩沖器測(cè)試的數(shù)據(jù)。
總結(jié)
- 上一篇: 控制寄存器和系统地址寄存器
- 下一篇: Intel X86 CPU系列的寄存器