OS自作入門 #1
OS自作入門をペラペラと。とりあえず、
- nask? NASM でよくね?
- いきなり、FAT のファイルシステムを作らなくてもよくね?
なんてことを思った。
んでまぁ、
- FDの最初の1セクタ(512 bytes)をブートセクタと呼ぶ
- ブートセクタの最後の2バイトが little endian で 0xaa55 なら BIOS がブートセクタをメモリの 0x7c00 以降にロードして実行する
- AH に 0x0e を、あとほかのレジスタを適当な値にセットして int 0x10 とやると BIOS の機能で画面に1文字表示される
ということは分かった。
ので、適当な IPL とか。
org 0x7c00 xor ax, ax mov si, msg putloop: mov al, [si] inc si cmp al, 0 je fin mov ah, 0x0e mov bx, 0x0f int 0x10 jmp putloop fin: hlt jmp fin msg: db 0x0d, 0x0a, 0x0d, 0x0a db "hello IPL" db 0x0d, 0x0a times 0x1fe-($-$$) db 0 dw 0xaa55