임 취미용 OS 용 부트 로더를 작성하고 잘 작동하도록 노력하고 있습니다. 내가 처음 446 바이트가 부트 코드입니다 읽었습니다사용자 정의 부트 로더 문제
nasm -f bin loader.asm -o loader.bin
dd if=loader.bin of=floppy.img bs=512 count=1 seek=0
컴파일
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
임과 447 바이트 - 509 파티션 테이블 : 아무것도 특별, 그냥 한 줄의 텍스트를 인쇄 .
dd if=loader.bin of=floppy.img bs=446 count=1 seek=0
덮어 쓰지 파티션 테이블을 방지하기 위해 시도하지하지만 여전히 시가하는 : 내가 사용 후 시도했다. OSX와 Mac을 사용하고 버추얼
나는 중 VBOX에 floppy.img를 실행하고 코드가 잘 작동하지만로 OS를 테스트
임 내가 FAT 16 포맷 된 디스크에 부트 로더를 설치하려고 할 때, OSX는 포맷되지 않은 것처럼 디스크 이미지를 더 이상 읽을 수 없습니다.
정확한 디스크 남용 유틸리티는 Unable to attach image "floppy.img."(No Mountable File Systems)
입니다. FAT 16 파일 시스템으로 디스크를 포맷 했는데도.
불행히도 이것이 내 첫 번째 게시물이기 때문에 사진을 드릴 수 없습니다.
정말 도움이됩니다. 디스크 구조는 실제로 나의 장점이 아닙니다.
정말 고마워요. 나는 결코 짐작하지 않았을 것이다. –