x86中記憶體管理暫存器

2021-07-10 17:45:48 字數 1120 閱讀 7481

一、記憶體管理暫存器

處理器提供了4個記憶體管理暫存器(gdtr、ldtr、idtr和tr),用於指定記憶體分段管理所用系統表的基位址,如圖4-2所示。處理器為這些暫存器的載入和儲存提供了特定的指令。有關系統表的作用請參見4.2節"保護模式記憶體管理"中的詳細說明。

gdtr、ldtr、idtr和tr都是段基址暫存器,這些段中含有分段機制的重要資訊表。gdtr、idtr和ldtr用於定址存放描述符表的段。tr用於定址乙個特殊的任務狀態段(task state segment,tss)。tss中包含著當前執行任務的重要資訊。

(1)全域性描述符表暫存器gdtr

(2)中斷描述符表暫存器idtr

與gdtr的作用類似,idtr暫存器用於存放中斷描述符表idt的32位線性基位址和16位表長度值。指令lidt和sidt分別用於載入和儲存idtr暫存器的內容。在機器剛加電或處理器復位後,基位址被預設地設定為0,而長度值被設定成0xffff。

(3)區域性描述符表暫存器ldtr

ldtr暫存器中用於存放區域性描述符表ldt的32位線性基位址、16位段限長和描述符屬性值。指令lldt和sldt分別用於載入和儲存ldtr暫存器的段描述符部分。包含ldt表的段必須在gdt表中有乙個段描述符項。當使用lldt指令把含有ldt表段的選擇符載入進ldtr時,ldt段描述符的段基位址、段限長度以及描述符屬性會被自動地載入到ldtr中。當進行任務切換時,處理器會把新任務ldt的段選擇符和段描述符自動地載入進ldtr中。在機器加電或處理器復位後,段選擇符和基位址被預設地設定為0,而段長度被設定成0xffff。

(4)任務暫存器tr

tr暫存器用於存放當前任務tss段的16位段選擇符、32位基位址、16位段長度和描述符屬性值。它引用gdt表中的乙個tss型別的描述符。指令ltr和str分別用於載入和儲存tr暫存器的段選擇符部分。當使用ltr指令把選擇符載入進任務暫存器時,tss描述符中的段基位址、段限長度以及描述符屬性會被自動載入到任務暫存器中。當執行任務切換時,處理器會把新任務的tss的段選擇符和段描述符自動載入進任務暫存器tr中。

x86暫存器說明

32位cpu有2個32位通用暫存器esi和edi。其低16位對應先前cpu中的si和di,對低16位資料的訪問,不影響 高16位的資料。暫存器esi edi si和di稱為變址暫存器 index register 它們主要用於存放儲存單元在段內的偏移量,用它們可實現多種儲存器運算元的定址方式,為以不...

x86 暫存器資訊

下面的暫存器資訊適用於 x86 體系結構。暫存器說明 gs 交替資料段暫存器 fs 交替資料段暫存器 es 交替資料段暫存器 ds 資料段暫存器 edi 目標索引暫存器 esi 源索引暫存器 ebp 幀指標 esp 棧指標 ebx 通用暫存器 edx 通用暫存器 ecx 通用暫存器 eax 通用暫存...

X86暫存器簡述

x86暫存器簡述 一 80386微處理器的內部組成和結構 以前的機子都是16位的,功能沒有多大變化,intel 386是真正的32位微處理器。1 通用暫存器 8個通用暫存器和8086通用暫存器相同,只是擴充套件到了32位,暫存器名字前加了乙個字元e,即 eax ebx ecx edx esi edi...