30天自制操作系統 - 來一個hello world


helloos.nas 源碼:

 1 ; hello-os
 2 ; TAB=4
 3 
 4 ; 以下這段是標准的FAT12格式軟盤專用代碼
 5 
 6         DB        0xeb, 0x4e, 0x90
 7         DB        "HELLOIPL"        ; 啟動區名稱,可以是任意的字符串(8個字節)
 8         DW        512                ; 每個扇區(sector)的大小(必須為512字節)
 9         DB        1                ; 簇(clustor)的大小(必須為1個扇區)
10         DW        1                ; FAT的起始位置(一般從第一扇區開始)
11         DB        2                ; FAT的個數(必須為2)
12         DW        224                ; 根目錄的大小(一般設為224項)
13         DW        2880            ; 該磁盤的大小(必須是2880扇區)
14         DB        0xf0            ; 磁盤的種類(必須是0xf0)
15         DW        9                ; FAT的長度(必須是9個扇區)
16         DW        18                ; 1個磁道(track)有幾個扇區(必須是18個)
17         DW        2                ;磁頭數(必須是2個)
18         DD        0                ; 不使用分區必須是0
19         DD        2880            ; 從寫一次磁盤大小
20         DB        0,0,0x29        ; 意義不明,固定
21         DD        0xffffffff        ; 大概卷序列號
22         DB        "HELLO-OS   "    ;磁盤名稱(11字節)
23         DB        "FAT12   "        ;格式名稱(8字節)
24         RESB    18                ;先空18個字節
25 
26 ; 程序主體
27 
28         DB        0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
29         DB        0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
30         DB        0x04, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
31         DB        0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
32         DB        0xee, 0xf4, 0xeb, 0xfd
33 
34 ; 信息部分
35 
36         DB        0x0a, 0x0a        ; 2個改行
37         DB        "hello, world"   ;輸出信息
38         DB        0x0a            ; 改行
39         DB        0 
40 
41         RESB    0x1fe-$            ; 填寫0x00,直到0x001fe
42 
43         DB        0x55, 0xaa
44 
45 ; 以下是非啟動扇區以外的部分的描述
46 
47         DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
48         RESB    4600
49         DB        0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
50         RESB    1469432

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM