📄 pm.inc
字号:
; pm.inc :
; 保护模式ASM代码的通用声明文件.
;
; Copyright(c) 2007, Alex P.Wonder
; phoenixwonder@gmail.com
;
; GDT Entry :
; %1: 段基址
; %2: 段界限
; %3: 段属性
%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
DA_C equ 0098h ;10011000b
DA_32 equ 4000h ;
DA_LIMIT_4K equ 8000h ;
DA_DPL3 equ 0060h ;
DA_DRW equ 0093h ;
DA_CR equ 009fh
EA_RPL3 equ 0003h
; 中断/陷阱门结构:
; %1 - Selector
; %2 - HandlerAddr
; %3 - Attribute
%macro Gate 3
dw %2 & 0ffffh ; 0..15
dw %1
dw (%3 & 0ff00h) ;| 8000h
dw (%2 >> 16) & 0ffffh ; 16..31
%endmacro
KernelEntryPhyAddr equ 0x30400 ;内核运行时的内存地址
GA_INTERRUPT equ 8e00h
GA_TRAP equ 8f00h
GA_DPL3 equ 6000h
DA_386IGate equ 8e00h
;///////////////////////////////////////////
;DA_LDT EQU 82h
;DA_TaskGate EQU 85h
;DA_386TSS EQU 89h
;DA_386CGate EQU 8Ch
;DA_386IGate EQU 8Eh
;DA_386TGate EQU 8Fh
;
;SA_RPL0 EQU 0
;SA_RPL1 EQU 1
;SA_RPL2 EQU 2
;SA_RPL3 EQU 3
;
;SA_TIG EQU 0
;SA_TIL EQU 4
;%macro Gate 4
; dw (%2 & 0FFFFh)
; dw %1
; dw (%3 & 1Fh) | ((%4 << 8) & 0FF00h)
; dw ((%2 >> 16) & 0FFFFh)
;%endmacro
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -