處理器提供四個記憶體管理暫存器(gdtr、ldtr、idtr和tr),它們指定控制段式記憶體管理的資料結構的位置(見圖2-5)。有專門的指令來載入或儲存這些暫存器。
圖2-5 記憶體管理暫存器
2.4.1全域性描述符表暫存器(gdtr)
gdtr暫存器存放gdt的基礎位址(保護模式中32位,ia-32e模式中64位)和16位的表界限。基礎位址指的是gdt的位元組0的線性位址;表界限指的是gdt占用的位元組數。
lgdt和sgdt指令分別載入和儲存gdtr暫存器。在處理器加電啟動或復位時,基礎位址會被設為預設值0,表界限會被設為0ffffh。要進入保護模式,處理器初始化程序必須載入乙個新的基礎位址到gdtr中。
請見3.5.1《段描述符表》。
2.4.2區域性描述符表暫存器(ldtr)
ldtr暫存器存放ldt的16位段選擇子、基礎位址(保護模式中32位,ia-32e模式中64位)、段界限和描述符屬性。基礎位址指的是ldt的位元組0的線性位址;段界限指的是段占用的位元組數。請見3.5.1《段描述符表》。
lldt和sldt指令分別載入和儲存ldtr暫存器的段選擇子部分。包含ldt的段必須在gdt中有其段描述符。當lldt指令載入段選擇子到ldtr中時,基礎位址、段界限和段描述符屬性會從ldt描述符中自動被載入到ldtr中。
在任務切換發生時,新任務的ldt的段選擇子和描述符會被自動載入到ldtr中。在載入新的ldt資訊到ldtr中前ldtr的內容不會被自動儲存。
在處理器加電啟動或復位時,段描述符和基礎位址會被設為預設值0,段界限會被設為0ffffh。
2.4.3中斷描述符表暫存器(idtr)
idtr暫存器存放idt的基礎位址(保護模式中32位,ia-32e模式中64位)和16位的表界限。基礎位址指的是idt的位元組0的線性位址;表界限指的是idt占用的位元組數。
lidt和sidt指令分別載入和儲存idtr暫存器。在處理器加電啟動或復位時,基礎位址會被設為預設值0,表界限會被設為0ffffh。接下來idtr中的基礎位址和表界限可以被處理器初始化程序更改。
請見6.10《中斷描述符表(idt)》。
2.4.4任務暫存器(tr)
tr暫存器存放當前任務的tss的16位段選擇子、基礎位址(保護模式中32位,ia-32e模式中64位)、段界限和描述符屬性。段選擇子指示gdt中該tss描述符的位置;基礎位址指的是tss的位元組0的線性位址;段界限指的是tss占用的位元組數。請見7.2.4《任務暫存器》。
ltr和str指令分別載入和儲存任務暫存器的段選擇子部分。包含ldt的段必須在gdt中有其段描述符。當ltr指令載入段選擇子到任務暫存器中時,基礎位址、段界限和段描述符屬性會從tss描述符中自動被載入到任務暫存器中。在處理器加電啟動或復位時,段描述符和基礎位址會被設為預設值0,段界限會被設為0ffffh。
在任務切換發生時,新任務的tss的段選擇子和描述符會被自動載入到任務暫存器中。在載入新的tss資訊到任務暫存器中前,任務暫存器的內容不會被自動儲存。
Intel處理器系列
intel處理器系列俗稱x86,經歷了乙個長期的 不斷進化的發展過程。1.8086 1978年,29k個電晶體 它是第一代單晶元 16位微處理器之一。2.80286 1982年,134k個電晶體 它增加了更多的定址模式。3.i386 1985年,275k個電晶體 擴充套件到了32位,增加了平坦的定址...
Intel系統程式設計指南第八章 多處理器管理
這個章節選自intel官方文件,是由本人親自翻譯的。這裡先註明一下,以下所碰到的英文單詞cache,如果c是大寫的,即cache,表示名詞 高速緩衝儲存器 如果c是小寫的,即cache,表示動詞 表示將資料快存到某個高速緩衝儲存器中 intel 64以及ia 32架構提供了管理及提公升連線到同一系統...
Intel處理器基本暫存器
ia 32架構提供16個基本程式執行暫存器,用於一般系統和應用程式程式設計 這些暫存器可分為如下四類 通用暫存器主要儲存指令運算過程中的各類資料,包括 ia 32架構下共包含了8個通用暫存器,依次命名為eax ebx ecx edx esi edi ebp esp。儘管這些暫存器都可用於通用資料的儲...