강좌 / 팁

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

2013.12.22 10:08

BillGates 조회:5405 추천: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 - - -
628 소프트웨어| 울트라ISO로 USB에 4GB이상 ISO굽는법. [8] Teris 20240 2 12-11
627 소프트웨어| Internet Explorer 32비트 64비트 아이콘 만들기 [7] 죠타로 4441 4 12-13
626 소프트웨어| 오브젝트독(Object Dock) 추가 내용 - 본문 수정② [27] 고양이2 5137 19 12-13
625 소프트웨어| Primo 램디스크의 하이브리드 디스크 활용하기 [11] 고맙쥐 9438 9 12-14
624 소프트웨어| StrokesPlus, 제스처로 apply버튼, ok버튼 누르기(AHK의 활용) [2] 유리얼음 4209 5 12-14
623 소프트웨어| 윈도우 날짜를 바꿔봅시다 배치파일 만들기 [2] 똥꼬빤쮸 4700 1 12-17
622 소프트웨어| 마우스제스처 StrokeIt 사용법 - (본문 수정) [35] 고양이2 5173 13 12-17
621 소프트웨어| 삼성 노트북에서 카탈리스트 13.12 WHQL 설치하기 [1] 메트로작전 5250 2 12-19
620 소프트웨어| uTorrent 포터블 만들기 [5] 화랑 8328 6 12-20
619 소프트웨어| 운영체제 만들기 -1- [15] BillGates 10576 9 12-21
618 소프트웨어| 운영체제 만들기 -2- [5] BillGates 5551 5 12-22
» 소프트웨어| 운영체제 만들기 -3- [6] BillGates 5405 6 12-22
616 소프트웨어| [수정등록]삼성 리커버리 솔루션 이식하기 (ATIV PRO) [11] 달리아 21381 12 12-24
615 소프트웨어| IE 모드 지정 및 여러가지 설정 죠타로 4657 2 12-28
614 소프트웨어| PowerDVD 13에서 HDD의 디스크 폴더를 재생하는 법 [1] 나는나다 4557 3 12-30
613 소프트웨어| 프리모캐시 90일 무한연장팁?! [5] 돈쥬 10140 3 01-03
612 소프트웨어| 이 방법 test 함 부탁드려봅니다 (본문수정) [10] ϟƘƦƖןןΣx 4500 1 01-06
611 소프트웨어| BOOTICE 활용 - Lvyanan 으로 긴급 파티션 설정 [25] 입니다 8813 14 01-10
610 소프트웨어| chrome://flags 활용 {잘못된곳 ??] DaBin 5946 2 01-15
609 소프트웨어| 한컴오피스2014에서 한글 수식 깨질 때 [6] 이코누 7097 3 01-16
XE1.11.6 Layout1.4.8