操作系统加载相关

; FAT12 软盘标准

        DB        0xeb, 0x4e, 0x90
        DB        "BerBer"        ; 启动区的名称可以任意  8字节
        DW        512                ; 每个扇区的大小  512字节
        DB        1                ; 簇的大续爱  1个扇区
        DW        1                ; FAT起始位置  第一个扇区
        DB        2                ; FAT个数 2 
        DW        224                ; 根目录大小
        DW        2880            ; 该磁盘大小 2880
        DB        0xf0            ; 磁盘种类
        DW        9                ; FAT长度
        DW        18                ; 1个磁道有几个扇区
        DW        2                ;  磁头数
        DD        0                ; 不使用分区
        DD        2880            ;  重写一次磁盘大小
        DB        0,0,0x29        ;  固定
        DD        0xffffffff        ;  卷标号码
        DB        "BerBer-OS   "    ; 磁盘名称
        DB        "FAT12   "        ;  磁盘格式名称
        RESB    18                ; 先空出18字节

; 程序主体

        DB        0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
        DB        0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
        DB        0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
        DB        0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
        DB        0xee, 0xf4, 0xeb, 0xfd

; 信息显示部分

        DB        0x0a, 0x0a        ; 2个换行
        DB        "hello, world"
        DB        0x0a            ; 换行
        DB        0

        RESB    0x1fe-$            ; 填写0x00,直到0x001fe

        DB        0x55, 0xaa

; 以下是启动区以外部分的输出

        DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
        RESB    4600
        DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
        RESB    1469432

          FAT12有很好的格式兼容性,将软盘格式化(不要使用快速格式化)之后,将这段代码写入。再使用这张操作系统软盘重启电脑,就可以看到这个只有一行输出的操作系统了。

  

上一篇:自制操作系统Antz day02——进入保护模式 (上) jmp到保护模式


下一篇:自制操作系统Antz day01——Boot Sector