返回

打造专属 MBR,点亮屏幕显字符

见解分享

踏入 MBR 世界

在操作系统开发的浩瀚世界中,MBR(主引导记录)扮演着至关重要的角色。它驻扎在磁盘的第一个扇区,负责引导计算机并启动操作系统。它的大小仅为 512 字节,但承载着引导过程的重任。

动手编写 MBR

现在,让我们动手编写自己的 MBR,这是一段汇编代码,将向屏幕输出一个字符。我们使用 NASM 汇编器,因为它是一款适用于此任务的强大工具。

[bits 16]
[org 0x7c00]

jmp short boot

boot:
    mov ah, 0x0e
    mov al, '1'
    int 0x10
    jmp $

times 510-($-$) db 0

剖析 MBR 代码

  • [bits 16]: 声明代码将在 16 位模式下运行。
  • [org 0x7c00]: 设置代码在磁盘上的起始地址。
  • jmp short boot: 跳转到名为 boot 的标签。
  • boot:: 标记引导程序的起始位置。
  • mov ah, 0x0e: 将 ah 寄存器设置为 0x0e,表示将字符输出到屏幕。
  • mov al, '1': 将 al 寄存器设置为 ASCII 码为 '1' 的值。
  • int 0x10: 中断调用 0x10,将字符输出到屏幕。
  • jmp $: 无条件跳转到代码的开头,形成一个循环。
  • times 510-($-$$) db 0: 用 0 填充 MBR 的剩余部分,使其大小达到 512 字节。

编译和使用

将代码保存在名为 mbr.asm 的文件中并使用以下命令编译:

nasm -f bin mbr.asm -o mbr.bin

生成的 mbr.bin 文件就是你的 MBR 代码。使用磁盘工具将其写入磁盘的第一个扇区,然后重启计算机。

MBR 的奥秘

现在,让我们深入了解 MBR 的奥秘:

  • 引导扇区(512 字节) :MBR 驻扎的磁盘第一个扇区。
  • MBR 代码(446 字节) :包含引导程序和分区表的代码。
  • 分区表(64 字节) :磁盘分区的信息。
  • MBR 签名(2 字节) :标识有效 MBR 的 0xAA55 签名。

MBR 的作用

MBR 在引导过程中扮演着至关重要的角色:

  • 确定活动分区。
  • 将活动分区的第一个扇区加载到内存中。
  • 将控制权交给加载的代码。

结语

恭喜你,你已经成功编写了自己的 MBR 并将其用于在屏幕上输出字符。这只是一个开始,随着你对操作系统开发深入了解,你将揭开 MBR 更深层次的秘密。