标签:
第一天主要是涉及一些比较基础的概念,大多都是关于操作系统基本知识以及一些硬件操作的
这里主要讲一下关于FAT12的一些概念:
启动区:软盘的第一个扇区称为启动区,一般启动盘的后两个字节为55AA,不然计算机认为这个系统没有启动程序
1 ;hello-os 2 ;TAB=4 3 4 ;以下这段是标准FAT12格式软盘专用代码 5 DB 0xeb, 0x4e, 0x90 6 DB "HELLOIPL" ;启动扇区的名称可以使任意的字符串 7 DW 512 ;每个扇区的大小(必须为512字节) 8 DB 1 ;簇的大小(必须为1个扇区) 9 DW 1 ;FAT的起始位置(一般从第一个扇区开始) 10 DB 2 ;FAT的个数(必须为2) 11 DW 224 ;根目录的大小(一般设置为224) 12 DW 2880 ;该磁盘的大小(必须是2880扇区) 13 DB 0xf0 ;磁盘的种类(必须是0xf0) 14 DW 9 ;FAT的长度(必须是9扇区) 15 DW 18 ;1个磁道有几个扇区(必须是18) 16 DW 2 ;磁头数(必须是2) 17 DD 0 ;不试用分区(必须是0) 18 DD 2880 ;重写一次磁盘大小 19 DB 0,0,0x29 ;固定 20 DD 0xffffffff ;(可能是)卷码标号 21 DB "HELLO-OS " ;磁盘的名称(11字节) 22 DB "FAT12 " ;磁盘格式的名称(8字节) 23 RESB 18 ;先空出18字节 24 25 ;程序的主体 26 DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c 27 DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a 28 DB 0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09 29 DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb 30 DB 0xee, 0xf4, 0xeb, 0xfd 31 32 ;信息显示部分 33 DB 0x0a, 0x0a ;2个换行 34 DB "hello, world" 35 DB 0x0a ;换行 36 DB 0 37 RESB 0x1fe-$ ;填写0x00,直到0x001fe 38 DB 0x55, 0xaa 39 40 ;以下是启动区以外部分的输出 41 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 42 RESB 4600 43 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 44 RESB 1469432
第一天的内容也比较简单,没什么好说的,另外还涉及到一些CPU和汇编的基础知识,关于这方面,书的作者写得比我好多了,期待第二天的内容
标签:
原文地址:http://www.cnblogs.com/wolf940509/p/4185332.html