趣味OS用のブートローダを作成しようとしていて、それがうまく動作しています。 何も特別な、単なるテキストの行を出力します。カスタムブートローダーの問題
BITS 16
ORG 0
start: jmp main
OEM db "Test OS "
BytesPerSector: DW 512
SectorsPerCluster: DB 1
ReservedSectors: DW 1
NumberOfFATs: DB 2
RootEntries: DW 224
TotalSectors: DW 2880
Media: DB 0xf8
SectorsPerFAT: DW 9
SectorsPerTrack: DW 18
HeadsPerCylinder: DW 2
HiddenSectors: DD 0
TotalSectorsBig: DD 0
DriveNumber: DB 0
Unused: DB 0
ExtBootSignature: DB 0x29
SerialNumber: DD 0xa0a1a2a3
VolumeLabel: DB "HOBBY OS "
FileSystem: DB "FAT12 "
main:
;Adjust code Seg.
cli
mov ax, 0x07c0
mov ds, ax
mov es, ax
mov fs, ax
mov gs, ax
;Set up Stack
mov ax, 0x0000
mov ss, ax
mov sp, 0xFFFF
sti
mov si, msg
call print
print:
.charLoop:
lodsb
or al,al
jz .done
mov ah, 0x0E
int 0x10
.done
ret
msg db "Hello World",13,10,0
Imが
nasm -f bin loader.asm -o loader.bin
dd if=loader.bin of=floppy.img bs=512 count=1 seek=0
でコンパイル私は最初の446のバイトはブートコードとバイト447であることを読んだ - 509は、パーティションテーブルであります。
dd if=loader.bin of=floppy.img bs=446 count=1 seek=0
上書きされるパーティションテーブルを防ぐためにしようとしませんが、まだ葉巻する: 私が使用して、その後みました。
イムOSXでのMacを使用してVirtualBoxの
とOSのテスト、私はVBoxのでfloppy.imgを実行することができますし、コードが正常に動作しますが、私はFAT 16フォーマットされたディスクにブートローダーをインストールしようとすると、 OSXはあたかもフォーマットされていないかのようにディスクイメージを読めないように見えます。
正確なメッセージアウトディスクユーティリティUnable to attach image "floppy.img."(No Mountable File Systems)
私はFAT 16ファイルシステムでディスクをフォーマットしましたが、
これは私の最初の投稿であるため、不幸なことに、私はあなたに写真を送ることはできません。
本当に助けていただければ幸いです。ディスク構造は本当に私の特権ではありません。
ありがとうございました。私は推測していないだろう –