⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 386scd.asm

📁 一个小型操作系统
💻 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 + -