BIOS找到以0X55AA结束的512Byte扇道,把此512字节内容加载到起始地址为07c00h的内存,然后BIOS把控制权限这段内存中的程序了。这段程序就是系统的开始了。
最简单的系统:
;org 0100h ;调试用
org 07c00h ;最终留下
mov ax, cs
mov ds, ax
call DispStr
jmp $
DispStr:
mov ax, BootMessage
mov bp, ax
mov cx, 16
mov ax, 01301h
mov bx, 000ch
mov dl, 0
int 10h
ret
BootMessage: db "Hello, OS world!"
times 510-($-$$) db 0
dw 0xaa55
用NASM编译出bin文件后,用visual box软驱加载此bin文件,可以看见hello world了:
可以认为,一个世界上最小的系统已经起来了