一个操作系统,想要被BIOS找到,依靠的就是引导扇区。所以操作系统的第一步就是实现引导扇区。这篇博客要用到两个工具:nasm和vmware。引导扇区一般用汇编编写,我们使用nasm来把编译汇编源文件翻译成机器码。nasm工具可以在 这里 下载。另外我们在虚拟机上模拟启动(或者烧录到U盘启动),所以准备VMWare或者其它虚拟机软件,准备好着这两个工具就可以开始了。
一、引导扇区
boot.asm 文件
org 07c00h mov ax,cs mov ds,ax mov es,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编译,在cmd中使用命令
nasm boot.asm -o boot.bin
这里我们简单解释下
ORG 0x7c00
ORG命令指明将整个程序加载到内存的0x7c00处,0x7c00是人为规定的地址,不能更改。
第二段就是初始化寄存器
第三段就是调用DispStr来显示Hello,World
把需要显示的字符串放到ax寄存器,调用显示中断进行显示
第四段就是引导扇区结尾
$ 表示当前地址 $$表示段首地址,TIMES表示重复执行
TIMES 循环次数 执行内容
times 510-($-$$) db 0 dw 0xaa55
当前位置到510字节前全部写0,最后写0xaa55作为结束
二、系统引导
运行编译命令后,得到了.bin文件,接下来我们要在虚拟机中启动该操作系统了,我们在VMWare中先添加一个空白的虚拟机
我们再在此添加一个软盘驱动器(因为我们前面的汇编程序是标识软盘的)
软盘中选择刚生成的bin文件即可
我们启动虚拟机,就可以看到系统被成功引导了
OK,See You Next Chapter!