강좌 / 팁

소프트웨어 운영체제 만들기 -3-

2013.12.22 10:08

BillGates 조회:5419 추천:6

 이번엔 2편에서 만든 부트로더의 설명과 nasm이 컴파일한 명령어를 한번 분석해보도록하죠.


times 510-($-$$) db 0x00

dw 0xaa55

가 코드였는데요. 여기서 times는 같은 동작을 반복하는 명령문입니다.

$는 현재 주소고요, 그와 달리 $이게 두개있는 $$는 세그먼트의 시작주소입니다. $-$$ 는 처음과 현재의 차이죠.

즉 이 이야기는 510-($-$$)는 현재부터 510바이트까지 가 되겠죠. 근데 현재에 아무것도 한게 없으니 0바이트부터 510바이트까지 쭉쭉 입니다. db는 1byte입니다. 1byte씩 0에서 510바이트를 0x00으로 계속 채워나가라는 거죠. 그리고 부팅을 할수있게 해준 대망의 코드.

dw 0xaa55는요. 일단 dw가 word란 뜻입니다. 그러면 이제 남은 두 511, 512바이트를 저 0xaa55로 채우라는 거죠. 근데 분명히 부트코드는 55AA 순이라고 했는데 왜 aa55순으로 채우라는 걸까요? 인텔과 AMD의 CPU는 리틀엔디안이라는 저장방식을 채택했습니다. 근데 그 리틀엔디안은 저장을 거꾸로 합니다. 그래서 aa55는 저장될때 55AA로 잘 저장이 되는겁니다. 여기까지가 부트로더 설명이었습니다.

 이제 nasm의 컴파일 명령어 차례인데요.


nasm boot.asm -f bin -o boot.bin


이 명령어입니다. nasm은 컴파일하는 프로그램 이름이죠? 다들 아실테고. 해석해보면 nasm으로 boot.asm을 bin파일 형식으로 포맷하고 boot.bin으로 결과물이 나오라는 뜻입니다. -f는 format의 약자입니다. 그리고 -o는 output의 약자죠. 그래서 bin파일로 포맷해서 boot.bin으로 나오는 겁니다.


다음편 예고 : 문자를 출력하는 부트로더!

번호 제목 글쓴이 조회 추천 등록일
[공지] 강좌 작성간 참고해주세요 gooddew - - -
2261 소프트웨어| IE 모드 지정 및 여러가지 설정 죠타로 4672 2 12-28
2260 하드웨어| USB 메모리를 하드디스크처럼 인식하도록 만들기 [5] DOS 15270 2 12-28
2259 기 타| 유튜브 손쉽게 다운로드 하는 방법 [13] realzero 12517 2 12-27
2258 기 타| 구글 사용법 [6] asklee 6439 5 12-24
2257 하드웨어| 리튬 이온 배터리 관련... [2] asklee 5505 2 12-24
2256 소프트웨어| [수정등록]삼성 리커버리 솔루션 이식하기 (ATIV PRO) [11] 달리아 21537 12 12-24
2255 윈 도 우| chkdsk 디스크 검사 시간 단축시키기 메트로작전 6068 3 12-23
2254 하드웨어| 저용량 하드 디스크 활용하기 [9] DOS 9819 5 12-22
» 소프트웨어| 운영체제 만들기 -3- [6] BillGates 5419 6 12-22
2252 소프트웨어| 운영체제 만들기 -2- [5] BillGates 5564 5 12-22
2251 소프트웨어| 운영체제 만들기 -1- [15] BillGates 10591 9 12-21
2250 소프트웨어| uTorrent 포터블 만들기 [5] 화랑 8345 6 12-20
2249 소프트웨어| 삼성 노트북에서 카탈리스트 13.12 WHQL 설치하기 [1] 메트로작전 5267 2 12-19
2248 윈 도 우| 마우스 바이러스 치료법 [6] 정불사용자 10973 7 12-18
2247 소프트웨어| 마우스제스처 StrokeIt 사용법 - (본문 수정) [35] 고양이2 5187 13 12-17
2246 소프트웨어| 윈도우 날짜를 바꿔봅시다 배치파일 만들기 [2] 똥꼬빤쮸 4746 1 12-17
2245 소프트웨어| StrokesPlus, 제스처로 apply버튼, ok버튼 누르기(AHK의 활용) [2] 유리얼음 4229 5 12-14
2244 소프트웨어| Primo 램디스크의 하이브리드 디스크 활용하기 [11] 고맙쥐 9450 9 12-14
2243 소프트웨어| 오브젝트독(Object Dock) 추가 내용 - 본문 수정② [27] 고양이2 5159 19 12-13
2242 소프트웨어| Internet Explorer 32비트 64비트 아이콘 만들기 [7] 죠타로 4457 4 12-13
XE1.11.6 Layout1.4.8