一个操作系统,想要被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!

发表评论

邮箱地址不会被公开。 必填项已用*标注