代码拉取完成,页面将自动刷新
LOADER_START_ADDR equ 0x900
KERNEL_START_ADDR equ 0xB000
; 段属性的一些定义,暂时定义一些目前用得到的属性
DA_32 equ 0x4000 ; D/B = 1
DA_DR equ 0x90 ; 数据,只读
DA_DRW equ 0x92 ; 数据,可读/写
DA_DRWA equ 0x93 ; 数据,可读/写,已访问
DA_C equ 0x98 ; 代码,仅执行
DA_CR equ 0x9A ; 代码,可执行,可读
DA_CCO equ 0x9C ; 代码,一致性段,仅执行
DA_CCOR equ 0x9E ; 代码,一致性段,可执行,可读,已访问
DA_LIMIT_4K equ 0x8000 ; G = 1, 颗粒度:4K
; 段选择符属性定义
SA_RPL0 equ 0 ; RPL = 0
SA_RPL1 equ 1 ; RPL = 1
SA_RPL2 equ 2 ; RPL = 2
SA_RPL3 equ 3 ; RPL = 3
SA_TIG equ 0 ; TI = 0, GDT
SA_TIL equ 4 ; TI = 1, LDT
; 段描述符定义
%macro Descriptor 3 ; 有三个参数:段基址、段界限、段属性
dw %2 & 0xFFFF ; 段界限 1 (2 字节)
dw %1 & 0xFFFF ; 段基址 1 (2 字节)
db (%1 >> 16) & 0xFF ; 段基址 2 (1 字节)
dw ((%2 >> 8) & 0xF00) | (%3 & 0xF0FF) ; 段属性 1 + 段界限 2 + 段属性 2 (2 字节)
db (%1 >> 24) & 0xFF ; 段基址 3 (1 字节)
%endmacro ; 共 8 个字节
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。