自制操作系统笔记-第一章
光盘里的tolset文件夹(tool set 工具套件),把它复制到硬盘的任意位置。后面开发的都放在这里。也可以移动到其它地方。
教程中每天的工具目录分别命名为helloos0,helloos1,helloos2......,存在tolset文件夹下。
在helloos0文件夹下创建run.bat,这个是通过模拟器测试生成的软盘镜像文件,书上的代码有误,下面是光盘中的代码:
copy helloos.img ..\z_tools\qemu\fdimage0.bin ..\z_tools\make.exe -C ../z_tools/qemu
同样,创建install.bat,这个作用是将软盘镜像写入物理软盘,但现在我们都没有软驱了,所以用不上这个文件了。
..\z_tools\imgtol.com w a: helloos.img
nask是作者自己开发的一个汇编语言编译器。可以直接将nas源程序 编译生成 img镜像文件
--------------------------------------------------------------------------------------------------------------------------
汇编语言中;表示注释
----------------------------------------------------------------------
DB 是data byte的意思,此指令往文件里写入一个字节的内容,可以用它直接写字符串,汇编语言会自动查找每个字符的编码,然后把它们一个字节一个字节地排序起来
DW data word 此指令往文件里写入2字节的内容(16bit)
DD data double-word 此指令往文件里写入2字节的内容(32bit)
RESB reserve byte 预留字节, RESB 10就是预留10字节,也就是连续输出10个"0x00"
RESB 0x1fe-$ $是一个变量,表示从开头到当前行位置的字节数,例:
0 1 2 3 4 RESB 7 - $ 这里$表示4 ,7-4= 3 5 6 7 0x55 8 0xAA
0x1fe = 510
16^2*1+16^1*f+e
256+240+14 = 510
必须要保证软盘的第510字节(0x1fe)的位置是0x55 0xAA (85 170), 必须保证软盘510字节(即0X1FE)开始的地方是55 AA,这个位置是第一个扇区最后两个字节(510,511),如果这两个字节是0x55 0xAA就认为这个扇区开头的是启动程序
软盘的512字节称为一个“扇区”,1440KB软盘,也就是1474560字节,除以512,得2880,也就是说一张软盘共有2880个扇区,软盘的第一个扇区称为“启动区”,计算机从第一个扇区读软盘,检查最后两个字节。如果不是0x55 0xAA就报不能启动,如果是则认为这个扇区的开头是启动程序,并执行这个程序。