GDT
; 描述符
; usage: Descriptor Base, Limit, Attr
; Base: dd
; Limit: dd (low 20 bits available)
; Attr: dw (lower 4 bits of higher byte are always 0)
%macro Descriptor 3
dw %2 & 0FFFFh ; 段界限 1 (2 字节)
dw %1 & 0FFFFh ; 段基址 1 后16位 (2 字节)
db (%1 >> 16 ) & 0FFh ; 段基址 2 16-24位 (1 字节)
dw ((%2 >> 8 ) & 0F00h ) | (%3 & 0F0FFh) ; 属性 1 + 段界限 2 + 属性 2 (2 字节)
db (%1 >> 24 ) & 0FFh ; 段基址 3 24-32位 (1 字节)
%endmacro ; 共 8 字节
gdt的描述符.. 根据mj的猜想,这个数据结构写成这样应该是为了兼容16位。