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

📄 16bit.asm

📁 jserv写的orz小内核 有详细的注释
💻 ASM
字号:
[BITS 16][ORG KERNEL_START]Start:	mov ax, cs	mov ds, ax	mov es, ax	mov ss, ax               ;初始化堆栈段	mov sp, 0x0000           ;栈顶指针归零	; 准备切换到保护模式	cli                      ;禁用中断以免干扰初始化	cld                      ;设定字串处理由低到高地址	call PrepareIRQs         ;呼叫irqs.asm的函数初始化irq	call A20En               ;呼叫irqs.asm的函数打开A20地址线	lgdt [_GDT - KERNEL_START]	; load GDT _GDT在tables.asm	lidt [_IDTR - KERNEL_START]	; load IDTx _IDTR在tables.asm; CR0 :: PG CD NW 0		31..28;        0 0 0 0		27..24;        0 0 0 0		23..20;        0 AM 0 WP		19..16;        0 0 0 0		15..12;        0 0 0 0		11.. 8;        0 0 NE ET		 7.. 4;        TS EM MP PE		 3.. 0;;控制暫存器 CR0 的結構;位元編號 [31][30][29][28-19][18][ 17 ][16][15-6][05][04][03][02][01][00];欄位名稱 [PG][CD][NW][保 留][AM][保 留][WP][保 留][NE][ET][TS][EM][MP][PE]	mov eax, cr0	or eax,  00000000000000000000000000000001b	and eax, 10011111111110101111111111111111b	mov cr0, eax;将kernel_code代码段放入CS中,立即切换到保护模式执行32bit.asm里的Begin32c	jmp DWORD (kernel_code - _GDT):Begin32c

⌨️ 快捷键说明

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