30天自製作業系統 第0天

2021-10-10 08:03:09 字數 1830 閱讀 9449

;hello-os

;tab=

4;標準fat12格式軟盤專用**

db 0xeb

,0x4e

,0x90

db "helloipl"

;啟動區的名稱 可為任意字串

dw 512

; 每個扇區的大小(必須為512位元組)

db 1

; 簇的大小(必須為1個扇區)

dw 1

; fat的起始位置(一般從第乙個扇區開始)

db 2

; fat的個數(必須為2

)dw 224

; 根目錄的大小(一般設為224項)

dw 2880

; 該磁碟的大小(必須為2880扇區)

db 0xf0

; 磁碟的種類(必須是0xf0)

dw 9

; fat的長度(必須是9扇區)

dw 18

; 乙個磁軌的幾個扇區(必須是18)

dw 2

; 磁頭數(必須是2

)dd 0

; 不使用分割槽,必須是0

dd 2880

; 重寫一次磁碟大小

db 0,0

,0x29

; 意義不明,固定

dd 0xffffffff

;(可能是)卷標號碼

db "hello-os "

; 磁碟的名稱(11位元組)

db "fat12 "

; 磁碟格式名稱(8位元組)

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

;換行符

db "welcome to my ****ing world"

db 0x0a

;換行db 0

resb 0x1fe

-$ ;填寫0x00到0x1fe位置

db 0x55

,0xaa

;軟盤第乙個扇區的最後兩個位元組內容,對軟盤的扇區進行掃瞄,如果是55 aa,則認為這個扇區的開頭是啟動程式,並開始執行這個程式

;啟動區以外部分的輸出

db 0xf0

,0xff

,0x00

,0x00

,0x00

,0x00

,0x00

resb 4600

db 0xf0

,0xff

,0xff

,0x00

,0x00

,0x00

,0x00

resb 1469432

《30天自製作業系統》第4天

1.c語言與畫面顯示的練習 彙編與c 語言結合時能自由使用的寄存區只有 eax,ecx,edx3 個,其他寄存區用於記憶非常重要的值,只能讀不能寫。intel系列 cpu 8086 80186 286 386 486 pentium pentiumpro pentium2 pentium3 pent...

《30天自製作業系統》第6天

1.pic 可程式設計中斷控制器 pic 連線 8個中斷訊號,監視輸入管腳的 8個中斷訊號。主 pic irq0 irq7 irq2 連線到從 pic irq8 irq15 中斷發生後,cpu 命令pic傳送2 個位元組的資料,格式是 0xcd 0 cpu收到2 個位元組後把資料當做指令來執行。0x...

30天自製作業系統 第3天

cf 進製標誌,1位暫存器 jc 若進製標誌是1,則跳轉 int 0x13 呼叫磁碟bios ah 0x00 系統復位 0x02 讀盤 0x03 寫盤 0x04 校驗 0x0c 尋道 al 處理物件的扇區數 ch 柱面號 0xff cl 扇區號 0 5位 柱面號 0x300 2 dh 磁頭號 dl ...