강좌 / 팁

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

2013.12.22 10:08

BillGates 조회:5412 추천: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 - - -
2286 소프트웨어| chrome://flags 활용 {잘못된곳 ??] DaBin 5959 2 01-15
2285 윈 도 우| Grub4DOS에서 리터치한 WIM 파일의 XP를 설치하는 방법 [1] NetEagle 5799 1 01-15
2284 소프트웨어| BOOTICE 활용 - Lvyanan 으로 긴급 파티션 설정 [25] 입니다 8823 14 01-10
2283 소프트웨어| 이 방법 test 함 부탁드려봅니다 (본문수정) [10] ϟƘƦƖןןΣx 4509 1 01-06
2282 소프트웨어| 프리모캐시 90일 무한연장팁?! [5] 돈쥬 10154 3 01-03
2281 윈 도 우| XP.VHD를 만들어서 부팅하기 [21] suk 13674 10 01-02
2280 기 타| 무료 팩스 수신 서비스 [5] asklee 10284 9 01-01
2279 소프트웨어| PowerDVD 13에서 HDD의 디스크 폴더를 재생하는 법 [1] 나는나다 4566 3 12-30
2278 윈 도 우| 윈도우 7 32비트 64비트 메모리 [9] DOS 17705 2 12-29
2277 기 타| 32비트와 64비트, 그리고 메모리 [3] DOS 6041 2 12-29
2276 윈 도 우| Windows 8 에서 PAE 및 3GB 옵션 설정 [7] DOS 5196 2 12-29
2275 소프트웨어| IE 모드 지정 및 여러가지 설정 죠타로 4666 2 12-28
2274 하드웨어| USB 메모리를 하드디스크처럼 인식하도록 만들기 [5] DOS 15252 2 12-28
2273 기 타| 유튜브 손쉽게 다운로드 하는 방법 [13] realzero 12511 2 12-27
2272 기 타| 구글 사용법 [6] asklee 6434 5 12-24
2271 하드웨어| 리튬 이온 배터리 관련... [2] asklee 5500 2 12-24
2270 소프트웨어| [수정등록]삼성 리커버리 솔루션 이식하기 (ATIV PRO) [11] 달리아 21467 12 12-24
2269 윈 도 우| chkdsk 디스크 검사 시간 단축시키기 메트로작전 6067 3 12-23
2268 하드웨어| 저용량 하드 디스크 활용하기 [9] DOS 9808 5 12-22
» 소프트웨어| 운영체제 만들기 -3- [6] BillGates 5412 6 12-22
XE1.11.6 Layout1.4.8