段描述符是GDT(全局描述符表)和LDT(局部描述符表)中的一個數據結構項,它向處理器提供有關一個段的位置和大小信息以及訪問控制的狀態信息。段描述符通常由編譯器、連結器、載入器或作業系統創建,不由應用程式創建。
在32位保護模式下,段描述符的格式包含以下幾個欄位:
G位(粒度位):用於解釋段界限的含義。當G位是0時,段界限以位元組為單位;當G位是1時,段界限以4KB為單位。
S位:用於表示描述符類型。當該位是0時,表示是一個系統段;該位是1時,表示是一個代碼段或數據段(棧段也是一種特殊的數據段)。
DPL(Descriptor Privilege Level):用於表示描述符的特權級,占用2位,可用來表示0~3共4種特權級。
P位(段存在位):用來指示描述符所對應的段是否存在。
L位(64位代碼段標誌):在IA-32模式(保護模式)下,此位被保留並置0;在IA-32e模式(長模式)下,如果處理器工作在64位模式,此位為1;如果處理器工作在32位兼容模式,此位為0。
AVL(軟體可用位):處理器不使用這些位,供軟體使用。
D/B位(默認運算元大小位):用來指示默認運算元的大小。對於32位的段來說,該位總是為1;對於16位的段來說,該位為0。
此外,段描述符還包括基地址欄位(Base),該欄位定義在4GB線性地址空間中一個段位元組0所處的位置。