helloos.img
1 ;hello-os 2 ;TAB=4 3 4 ; 이하는 표준적인 FAT12 포멧 플로피디스크를 위한 서술 5 6 DB 0xeb, 0x4e, 0x90 7 DB "HELLOIPL" ; 부트섹터의 이름을 자유롭게 써도 좋음 8 DW 512 ; 1섹터의 크기(바이트 단위. 512로 해야함) 9 DB 1 ; 클러스터의 크기(1섹터로 해야 함) 10 DW 1 ; 예약된 섹터의 수 11 DB 2 ; 디스크의 FAT 테이블의 수 12 DW 224 ; 루트 디렉토리의 엔트리의 수(보통은 224엔트리) 13 DB 0xf0 ; 미디어 타입(0xf0으로 해야함) 14 DW 9 ; 하나의 FAT 테이블의 섹터 수(9섹터로 해야함) 15 DW 18 ; 1트랙에 몇 섹터가 있는가 (18로 해야 함) 16 DW 2 ; 헤드의 수(2로 해야함) 17 DD 0 ; 파티션을 사용하지 않으므로 이곳은 반드시 0 18 DD 2880 ; 이 드라이브의 크기를 한 번 더 씀 19 DB 0,0,0x29 ; 잘 모르겠지만 이 값을 넣어 두면 좋다고 함 20 DD 0xffffffff ; 아마 볼륨 시리얼 번호 21 DB "HELLO-OS " ; 디스크의 이름 22 DB "FAT12 " ; 포멧의 이름(8바이트) 23 RESB 18 ; 어쩃든 18바이트를 남겨둠 24 25 ; 프로그램 본체 26 27 DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c 28 DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a 29 DB 0xb4, 0x83, 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09 30 DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb 31 DB 0xee, 0xf4, 0xeb, 0xfd 32 33 ; 메세지 부분 34 35 DB 0x0a, 0x0a ; 줄 바꿈 2개 36 DB "hello, world" 37 DB 0x0a ; 줄 바꿈 38 DB 0 39 40 RESB 0x1fe-$ ; 0x001fe까지를 0x00으로 채우는 명령 41 DB 0x55, 0xaa 42 43 ; 이하는 부트섹터 이외의 부분에 기술 44 45 DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00 46 RESB 4600 47 DB 0xf0, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 48 RESB 1496432 49