30 天自制操作系统 - 第 2 天 学习汇编语言并开始使用 Makefile
最编程
2024-04-06 09:05:14
...
今天的任务是汇编语言和寄存器学习、制作启动区、Makefile入门
里面用到的文件,都在文末的链接里。
下面是采用汇编语言编写的helloos.nas文件,是不是比前一版好读多了:
; hello-os
; TAB=4
ORG 0x7c00 ; 指明程序的装载地址
; 以下这段是标准FAT12格式软盘专用的代码
JMP entry
DB 0x90
DB "HELLOIPL" ; 启动区的名称可以是任意的字符串(8个字节)
DW 512 ; 每个扇区(sector)的大小(必须为512字节)
DB 1 ; 簇(cluster)的大小(必须为1个扇区)
DW 1 ; FAT的起始位置(一般从第一个扇区开始)
DB 2 ; FAT的个数(必须为2)
DW 224 ; 根目录的大小(一般设成224项)
DW 2880 ; 该磁盘的大小(必须是2880扇区)
DB 0xf0 ; 磁盘的种类(必须是0xf0)
DW 9 ; FAT的长度(必须是9扇区)
DW 18 ; 1个磁道(track)有几个扇区(必须是18)
DW 2 ; 磁头数(必须是2)
DD 0 ; 不使用分区,必须是0
DD 2880 ; 重写一次磁盘大小
DB 0,0,0x29 ; 意义不明,固定
DD 0xffffffff ; 卷标号码
DB "HELLO-OS " ; 磁盘的名称(11字节)
DB &