30天自制操作系统-第二天

时间:2022-02-20 05:54:16

汇编实现软盘启动代码如下,做一个记录:

30天自制操作系统-第二天

	org 0x7c00
	jmp entry
	db 0x90

	DB "HELLOIPL"			;启动区的名称可以是任意的字符串
	DW 512					;每个扇区的大小
	db 1					;簇的大小
	dw 1					;fat的起始位置
	db 2					;fat的个数
	dw 224					;根目录的大小
	dw 2880					;该磁盘的大小(必须是2880扇区)
	dw 0xf0					;磁盘的种类
	dw 9					;fat的长度(必须是9个扇区)
	dw 18					;1个磁道,有几个扇区(必须是18)
	dw 2					;磁头数
	dd 0					;不使用分区
	dd 2880					;重写一次磁盘大小
	db 0,0,0x29				;意义不明,固定
	dd 0xffffffff			;可能是卷标号码
	db "Hello-os"			;磁盘名称
	db "FAT12"				;‘磁盘格式名称(8个字节)
	RESB 18					;先空出18个字节

;程序主体
entry:
	mov ax,0
	mov ss,ax
	mov sp,0x7c00
	mov ds,ax
	mov es,ax
	mob si,msg
putloop:
	mov al,[si]
	add si,1
	cmp al,0
	je fin
	mov ah,0x0e
	mov bx,15
	int 0x10			;调用显卡
	jmp putloop
fin:
	hlt
	jmp fin



;信息显示部分]
msg:
	db 0x0a,0x0a
	db "Hello,world"
	db 0x0a
	db 0
	RESB 0x1fe-$
	db 0x55,0xaa