自己动手写操作系统-Notes

第一章 马上动手写一个最小的 “操作系统”

当计算机电源被打开时, 它会先进行加电自检 (POST), 然后寻找启动盘, 如果是选择从软盘启动, 计算机就会检查软盘的 0 面 0 磁道 1 扇区, 如果发现它以 0xAA55 结束, 则 BIOS 认为它是一个引导扇区 Boot Sector.

一个正确的 Boot Sector 除了以 0xAA55 结束之外, 还应该包含一段少于 512 B 的执行码.

NASM 的格式跟 MASM 总体上是差不多的, 但有几点:

  • NASM 中, 任何不被方括号 [] 括起来的标签或变量名都被认为是地址, 访问标签中的内容必须使用 []
  • 在 NASM 中, 变量和标签是一样的

$ 表示当前行被汇编后的地址.

$$ 表示一个节 (section) 的开始处被汇编后的地址, 这里就是 0x7c09 (可能是一段代码就是一个 section)

$-$$ 表示本行距离程序开始处的相对距离.

times 510-($-$$) DB 0 表示用 0 这个字节重复 510-($-$$) 遍, 也就是在剩下的空间中不停填充 0, 直到程序有 510B 为止. 再加上结尾标志 0xAA55 占用 2B.

第二章 搭建你的工作环境

第三章 保护模式 (Protect Mode)


自己动手写操作系统-Notes
http://example.com/2022/12/17/自己动手写操作系统-Notes/
作者
Jie
发布于
2022年12月17日
许可协议