自己动手写操作系统-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/