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

📄 tables.asm

📁 jserv写的orz小内核 有详细的注释
💻 ASM
字号:
_GDT		;; first element of GDT is not use. Used as _GDTR		dw _GDT_END - _GDT - 1		dd _GDT		dw 0		; limit 00..15		; base 00..15		; base 16..23   /-- limit 16..19		; G D 0 AVL LIMIT(4) P DPL(2) S TYPE(3) A		; base 24..31		;; kernel codekernel_code	dw 0xFFFF		dw 0x0000		db 0x00		dw ACC_GRANULARY | ACC_DEF32SIZE | (1111b * ACC_LIMIT_MUL) | \		   ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_CODE | \		   ACC_TYPE_READ | ACC_USERSEG		db 0x00		;; kernel datakernel_data	dw 0xFFFF		dw 0x0000		db 0x00		dw ACC_GRANULARY | ACC_DEF32SIZE | (1111b * ACC_LIMIT_MUL) | \		   ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_DATA | \		   ACC_TYPE_WRITE | ACC_USERSEG		db 0x00		;; used when return to real modereal_mode_code	dw 0xFFFF		dw 0x0000		db KERNEL_START_HI		dw ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_CODE | \		   ACC_TYPE_READ | ACC_USERSEG		db 0x00		;; used when return to real modereal_mode_data	dw 0xFFFF		dw 0x0000		db KERNEL_START_HI		dw ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_DATA | \		   ACC_TYPE_WRITE | ACC_USERSEG		db 0x00		;; task codetask_code	dw 0x0000		dw 0x0000		db 0x00		dw ACC_GRANULARY | ACC_DEF32SIZE | (0000b * ACC_LIMIT_MUL) | \		   ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_CODE | \		   ACC_TYPE_READ | ACC_USERSEG		db 0x00		;; task datatask_data	dw 0x0000		dw 0x0000		db 0x00		dw ACC_GRANULARY | ACC_DEF32SIZE | (0000b * ACC_LIMIT_MUL) | \		   ACC_PRESENT | ACC_DPL_RING0 | ACC_TYPE_DATA | \		   ACC_TYPE_WRITE | ACC_USERSEG		db 0x00_GDT_END;;;;====;;;;====_RM_IDTR	dw 0x400 - 1		dd 0x00000000		dw 0;;;;====;;;;====_IDTR		dw _IDT_END - _IDT - 1		dd _IDT_IDT		; dw offsetLo		; dw selector		; db paramsCount		; db access		; dw offsetHi		dw Except_00 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_01 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_02 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_03 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_04 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_05 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_06 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_07 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_08 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_09 - KERNEL_START		dw kernel_code-_GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0A - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0B - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0C - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0D - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0E - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_0F - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_10 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_11 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_12 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_13 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_14 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_15 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_16 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_17 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_18 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_19 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1A - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1B - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1C - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1D - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1E - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Except_1F - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_TRAPGATE | ACC_PRESENT		dw KERNEL_START_HI;;;; int 20		dw IRQ_0 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_1 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_2 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_3 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_4 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_5 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_6 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_7 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_8 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_9 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_10 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_11 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_12 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_13 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_14 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw IRQ_15 - KERNEL_START		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI;;;; int 30		dw Int_GetMessage - KERNEL_START	; 0x30		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Int_SendMessageW - KERNEL_START	; 0x31		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Int_ProcessMessage - KERNEL_START	; 0x32		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Int_RemoveMessage - KERNEL_START	; 0x33		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI		dw Int_SendAnswer - KERNEL_START	; 0x34		dw kernel_code - _GDT		db 0		db ACC_INTGATE | ACC_PRESENT		dw KERNEL_START_HI_IDT_END;-------------------------------------------------------------------------------memMap		equ $			; Memory map, 128kb, jiao: to big for mememMapEnd	equ memMap + 0x20000;-------------------------------------------------------------------------------tasksList	equ memMapEndtasksListEnd	equ tasksList + MAX_TASKStasks		equ tasksListEndtasksEnd	equ tasks + MAX_TASKS * s_task.msize

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -