📄 386scd.asm
字号:
;FILENAME 386SCD.ASM
;
DESCRIPTOR STRUC ;全局,局部描述符的结构定义
LIMITL DW 0
BASEL DW 0
BASEM DB 0
ATTRIBUTES DB 0
GD00LIMITH DB 0
BASEH DB 0
DESCRIPTOR ENDS
;
GATE STRUC ;门描述符的结构定义
OFFSETL DW 0
SELLECTOR DW 0
DCOUNT DB 0 ;只在调用门中有用,在其他门中无意义。
GTYPE DB 0
OFFSETH DW 0
GATE ENDS
;
PDESC STRUC ;GDT,IDT伪描述符的结构定义
LIMIT DW 0
BASE DD 0
PDESC ENDS
;TSS
TASKSS STRUC ;任务状态段的结构定义
TRLINK DW ?,0
TRESP0 DD ?
TRSS0 DW ?,0
TRESP1 DD ?
TRSS1 DW ?,0
TRESP2 DD ?
TRSS2 DW ?,0
TRCR3 DD ?
TREIP DD ?
TREFLAG DW ?,?
TREAX DD ?
TRECX DD ?
TREDX DD ?
TREBX DD ?
TRESP DD ?
TREBP DD ?
TRESI DD ?
TREDI DD ?
TRES DW ?,0
TRCS DW ?,0
TRSS DW ?,0
TRDS DW ?,0
TRFS DW ?,0
TRGS DW ?,0
TRLDT DW ?,0
TRFLAGE DW 0
TRIOMAP DW $+2
TASKSS ENDS
;
ATDR = 90H
ATDW = 92H
ATDWA = 93H
ATDED = 96H ;ED=1,向下生长段,主要用于堆栈段
ATDEDWA = 97H
ATCE = 98H
ATCER = 9AH
ATCCO = 9CH
ATCCOR = 9EH
;
ATLDT = 82H
ATTASKGATE = 85H
AT386TSS = 89H
AT386IGATE = 8EH
AT386TGATE = 8FH
;
DPL1 = 20H
DPL2 = 40H
DPL3 = 60H
RPL1 = 01H
RPL2 = 02H
RPL3 = 03H
IOPL1 = 1000H
IOPL2 = 2000H
IOPL3 = 3000H
;
D32 = 4000H
TIL = 04H
VMFL = 0002H
IFL = 0200H
;-----------------------------------------------------------------------------------------
;32位偏移的段间转移宏指令
JUMP32 MACRO SELECTOR,OFFSETV;
DB 0EAH
DW OFFSETV
DW 0
DW SELECTOR
ENDM
;-----------------------------------------------------------------------------------------
;32位偏移的段间调用宏指令
CALL32 MACRO SELECTOR,OFFSETV
DB 09AH
DW OFFSETV
DW 0
DW SELECTOR
ENDM
;-----------------------------------------------------------------------------------------
;16位偏移的段间转移宏指令
JUMP16 MACRO SELECTOR,OFFSETV
DB 0EAH
DW OFFSETV
DW SELECTOR
ENDM
;-----------------------------------------------------------------------------------------
;16位偏移的段间调用宏指令
CALL16 MACRO SELECTOR,OFFSETV
DB 09AH
DW OFFSETV
DW SELECTOR
ENDM
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -