1.《一个操作系统的实现》中有一个nasm汇编关于段描述符的宏定义,如下:
; 描述符
; useage: Descriptor Base, Limit, Atrr
; 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
dw %1 & 0FFFFh ; 段基址1
db (%1 >> 16) & 0FFh ; 段基址2
dw ((%2 >> 8) & 0F00h) | (%3 & 0F0FFh) ; 属性1 + 段界符2 + 属性2
db (%1 >> 24) & 0FFh ; 段基址3
%endmacro ;共 8 字节
2.为了偏于理解这个段描述符宏定义的含义,先了解一下相关背景。
- 通用段描述符的格式如下:
即一个段描述符总共8字节,64