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

📄 bootsector.asm

📁 很好的一个微型操作系统源码
💻 ASM
字号:
[ORG 0x7c00]
[BITS 16]
start:
	mov	ax, cs
	mov	ds, ax
	mov	ss, ax
	mov	sp, 08000h

	call	read_it		;read next 64k code to 20000h

	cli			;disable interrupt

	mov	ax,cs
	mov	ds,ax
	lgdt	[gdt_48]	;load gdt

	mov	eax,cr0
	or	eax,1
	mov	cr0,eax		;enter protect mode
	jmp	dword 8:start_32;dword MUST NOT FORGET!

read_it:
	mov	ax, 2000h
	mov	es, ax
	xor	bx, bx
	mov	ax, 27fh
	mov	cx, 2
	mov	dx, 0080h
	int	13h
	ret

[BITS 32]
start_32:
	mov	ax, 10h
	mov	ds, ax
	mov	es, ax
	mov	ss, ax
	mov	gs, ax
	mov	fs, ax
	mov	esp, 08000h
	mov	eax, [7DFAh]
	call	eax
loopforever:
	jmp	loopforever
gdt:
	db 0,0,0,0,0,0,0,0
	db 0xFF, 0x07, 0x00, 0x00, 0x00, 0x9A, 0xC0, 0x00  ;code segment
	db 0xFF, 0x07, 0x00, 0x00, 0x00, 0x92, 0xC0, 0x00  ;data segment
gdt_48:
	dw 07FFh
	dw gdt, 0

times 510-($-$$) db 0
	dw 0AA55h

⌨️ 快捷键说明

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