Des_32 EQU 4000h ; 32 位段
Des_16 EQU 0000h ; 16 位段
Des_G EQU 8000h ; 段界限粒度, G=1 表示界限粒度为4K 字节
Des_DPL0 EQU 00h ; DPL = 0 00 0 0000
Des_DPL1 EQU 20h ; DPL = 1 01 0 0000
Des_DPL2 EQU 40h ; DPL = 2 10 0 0000
Des_DPL3 EQU 60h ; DPL = 3 11 0 0000
Des_DR EQU 90h ;1001 0000 存在的 只读 数据段类型值
Des_DRW EQU 92h ;1001 0010 存在的 可读写 数据段属性值
Des_DRWA EQU 93h ;1001 0011 存在的 可读写 已访问 数据段类型值
Des_DRWAS EQU 93h ;1001 0111 存在的 可读写 已访问 数据段类型值
Des_C EQU 98h ;1001 1000 存在的 只执行 代码段属性值
Des_CR EQU 9Ah ;1001 1010 存在的 可执行可读 代码段属性值
Des_CE EQU 9Ch ;1001 1100 存在的 只执行 一致 代码段属性值
Des_CER EQU 9Eh ;1001 1110 存在的 可执行可读一致 代码段属性值
Des_LDT EQU 82h ;1000 0010 局部描述符表段类型值
Des_TaskGate EQU 85h ;1000 0101 任务门类型值
Des_386TSS EQU 89h ;1000 1001 可用 386 任务状态段类型值
Des_386CGate EQU 8Ch ;1000 1100 386 调用门类型值
Des_386IGate EQU 8Eh ;1000 1110 386 中断门类型值
Des_386TGate EQU 8Fh ;1000 1111 386 陷阱门类型值
Sel_RPL0 EQU 0 ; ┓
Sel_RPL1 EQU 1 ; ┣ RPL
Sel_RPL2 EQU 2 ; ┃
Sel_RPL3 EQU 3 ; ┛
Sel_TIG EQU 0 ; ┓TI
Sel_TIL EQU 4 ; ┛
PG_P EQU 1 ; 页存在属性位
PG_RWR EQU 0 ; R/W 属性位值, 读/执行
PG_RWW EQU 2 ; R/W 属性位值, 读/写/执行
PG_USS EQU 0 ; U/S 属性位值, 系统级
PG_USU EQU 4 ; U/S 属性位值, 用户级
%macro Descriptor 3 ; 段基址, 段界限, 属性
dw %2 & 0FFFFh ; 段界限 1 (2 字节)
dw %1 & 0FFFFh ; 段基址 1 (2 字节)
db (%1 >> 16) & 0FFh ; 段基址 2 (1 字节)
dw ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh) ; 属性 1 + 段界限 2 + 属性 2 (2 字节)
db (%1 >> 24) & 0FFh ; 段基址 3 (1 字节)
%endmacro ; 共 8 字节
%macro Gate 4 ; 选择子、偏移、属性1、属性2
dw (%2 & 0FFFFh) ; 偏移 1 (2 字节)
dw %1 ; 选择子 (2 字节)
dw (%3 & 1Fh) | ((%4 << 8) & 0FF00h) ; 属性 (2 字节)
dw ((%2 >> 16) & 0FFFFh) ; 偏移 2 (2 字节)
%endmacro ; 共 8 字节