1일차

|
#부트 이미지 - Binary
helloos.img
0000:0000 EB 4E 90 48 45 4C 4C 4F-49 50 4C 00 02 01 01 00
0000:0010 02 E0 00 40 0B F0 09 00-12 00 02 00 00 00 00 00
0000:0020 40 0B 00 00 00 00 29 FF-FF FF FF 48 45 4C 4C 4F
0000:0030 2D 4F 53 20 20 20 46 4C-54 31 32 20 20 20 00 00
0000:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0050 B8 00 00 8E D0 BC 00 7C-8E D8 8E C0 BE 74 7C 8A
0000:0060 04 83 C6 01 3C 00 74 09-B4 0E BB 0F 00 CD 10 EB
0000:0070 EE F4 EB FD 0A 0A 68 65-6C 6C 6F 2C 20 88 6F 72
0000:0080 6C 64 0A 00 00 00 00 00-00 00 00 00 00 00 00 00

0000:0090 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:00F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0100 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0110 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0120 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0130 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0140 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0150 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0160 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0170 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0180 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:0190 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:01A0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:01B0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:01C0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:01D0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0000:01E0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00

0000:01F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 55 AA
0000:0200 F0 FF FF 00 00 00 00 00-00 00 00 00 00 00 00 00

0000:0210 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
~
0000:13F0 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00

0000:1400 F0 FF FF 00 00 00 00 00-00 00 00 00 00 00 00 00

0000:1410 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
~
0016:7FFF 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00
0016:8000


#부트 이미지 - Assembly
helloos.nas
DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00
DB 0x40, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff
DB 0xff, 0xff, 0xff, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x2d, 0x4f, 0x53, 0x20, 0x20, 0x20, 0x46, 0x4c
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x8., 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd, 0x0a, 0x0a, 0x68, 0x65
DB 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x88, 0x6f, 0x72
DB 0x6c, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00

DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa

DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
~ (약 18만 행)
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00

#부트 이미지 - 개선된 Assembly
helloos.nas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
DB 0xeb, 0x4e, 0x90, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x02, 0xe0, 0x00, 0x40, 0x0b, 0xf0, 0x09, 0x00
DB 0x40, 0x0b, 0x00, 0x00, 0x00, 0x00, 0x29, 0xff
DB 0xff, 0xff, 0xff, 0x48, 0x45, 0x4c, 0x4c, 0x4f
DB 0x2d, 0x4f, 0x53, 0x20, 0x20, 0x20, 0x46, 0x4c
DB 0x54, 0x31, 0x32, 0x20, 0x20, 0x20, 0x00, 0x00
RESB 16
DB 0xb8, 0x00, 0x00, 0x8e, 0xd0, 0xbc, 0x00, 0x7c
DB 0x8e, 0xd8, 0x8e, 0xc0, 0xbe, 0x74, 0x7c, 0x8a
DB 0x04, 0x8., 0xc6, 0x01, 0x3c, 0x00, 0x74, 0x09
DB 0xb4, 0x0e, 0xbb, 0x0f, 0x00, 0xcd, 0x10, 0xeb
DB 0xee, 0xf4, 0xeb, 0xfd, 0x0a, 0x0a, 0x68, 0x65
DB 0x6c, 0x6c, 0x6f, 0x2c, 0x20, 0x88, 0x6f, 0x72
DB 0x6c, 0x64, 0x0a, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 368
DB 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x55, 0xaa
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 4600
DB 0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB 1469432


#부트 이미지 - 더욱 개선된 Assembly
helloos.nas
;hello-os
;이하는 표준적인 FAT12 포맷 플로피디스크를 위한 서술
DB    0xeb, 0x4e, 0x90
DB    "HELLOIPL"    ;부트섹터의 이름을 자유롭게 써도 좋음
DW    512    	;1섹터의 크기
DB    1    	;클러스터의 크기 (1섹터로 해야 함)
DW    1    	;예약된 섹터의 수
DB    2    	;디스크의 FAT 테이블의 수
DW    224    	;루트 디렉토리 엔트리의 수 (보통은 224엔트리)
DW    2880    	;디스크의 총 섹터 수 (2880섹터로 해야 함)
DB    0xf0    	;미디어 타입 (0xf0으로 해야 함)
DW    9    	;하나의 FAT 테이블의 섹터 수 (9섹터로 해야 함)
DW    18    	;1트랙의 섹터 수 (18로 해야 함)
DW    2    	;헤드의 수 (2로 해야 함)
DD    0    	;파티션을 사용하지 않으므로 이곳은 반드시 0
DB    0, 0, 0x29    ;잘 모르겠지만 이 값을 넣어 두면 좋다고 함
DD    0xffffffff    ;아마 볼륨의 시리얼 번호
DB    "HELLO-OS"    ;디스크의 이름
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    ;줄바꿈 2개
DB    "hello, world"
DB    0x0a    	;줄바꿈
DB    0

RESB    0x1fe-$    	;0x001fe(510바이트, 0x001fe 앞)까지 0x00으로 채움
DB    0x55, 0xaa

;이하는 부트섹터 이외의 부분에 기술
DB    0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB    4600
DB    0xf0, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00, 0x00
RESB    1469432

- END -
And