# CHAPTER 5 - 구조체, 문자 표시와 GDT / IDT 초기화 #1 부팅 정보 받기 (harib02a) 4일차까지의 bootpack.c 에서는 0xa0000 이라든가 320이나 200이라는 숫자를 직접 프로그램에 쓰고 있었는데, 본래 이 값들은 asmhead.nas 에서 가져와야 한다. 그렇지 않으면, 화면 모드를 바꿨을 때 실행이 잘 안 된다. 그렇다면 포인터를 사용해서 이 값을 가져와 보도록 해보자. 추가로, binfo는 'bootinfo'의 약어고 scm은 'screen'(화면)의 약어다. /************************************************* ** HaribMain (in harib02a / bootpack.c) **********************..
* CHAPTER 4 - C언어와 화면 표시의 연습 #1 C언어로 메모리에 쓰기 (harib01a) 3일차 까지는 화면을 새카맣게 만드는 것까지 성공했다. 이번엔 화면에 뭔가를 그려보는 실습을 해보자. 뭔가를 그리기 위해선 VRAM에 뭔가를 쓰면 된다. 하지만 C언어에는 그런 기능이 존재하지 않는다. 그래서 그런 기능을 가진 함수를 만들어봤다. /************************************************* ** 3일차까지 완성되었던 naskfunc.nas 파일에 몇 줄을 추가함 *************************************************/ ; naskfunc ; TAB = 4 [FORMAT "WCOFF"]; 오브젝트 파일을 만드는 모드 [BITS ..
* CHAPETER 3 - 32비트 모드 돌입과 C언어 도입 #1 IPL 만들기 (initial program loader, 초기 프로그램 로더) 디스크의 맨 처음 512바이트는 부트섹터이므로 (이것은 2일째 OS 실습에서 정한 부분이다.), 그 다음의 512바이트를 읽어보자. projects / 03_day의 harib00a 안에 ipl.nas 는 기존의 ipl.nas에 추가된 부분이 존재한다. /************************************************* ** day 03 ipl.nas, added part *************************************************/ // 기존의 ipl.nas에서 추가된 부분이다. ; added part MO..
* CHAPETER 2 - 어셈블러 학습과 Makefile 입문 #1 레지스터 내용 정리 *16비트 레지스터 (= 기억회로) CPU에는 레지스터라는 기억회로가 있는데, 이것은 기계어의 변수이다. 변수라는 건 데이터를 담는 공간, 그릇이라는 의미로 이해하면 된다. 대표적인 레지스터로는 다음의 8개가 있는데, 이들은 고유의 이름과 기능을 가지고 있다. AX - 어큐물레이터(accumulator: 누적 연산기라는 의미) // X의 의미는 확장(extend)의 의미다. CX - 카운터(counter: 수를 세는 기계라는 의미)DX - 데이터(data: 데이터라는 의미)BX - 베이스(base: 기초, 기점이라는 의미)SP - 스택 포인터(stack pointer: 스택용 포인터)BP - 베이스 포인터(base ..
* CHAPETER 1 - PC 구조부터 어셈블리 입문까지 #1 학습할 때 난점과 해결 38페이지를 펴 보면, 첫 번째 챕터가 시작하는데 이 때부터가 난관이었다. 먼저, 필자가 말하는 바이너리 편집기 다운로드 사이트는 일본어로 된 사이트였다는 점이 첫 번째 난점. 책의 저자가 일본인이었다는 걸 그 때 알았다. 이건 번역되어 출판된 것이라는 걸... 모쪼록 구글링을 통해 책에 등장하는 바이너리 에디터 (Bz162.lzh)를 얻을 수 있었다. 바로 밑에 첨부자료로 첨부해놨으니 학습자분들은 별도의 구글링이 필요 없이 가져가시면 좋을 거 같다. 이제 바이너리편집기를 통해 저자가 말한 대로 하나 하나 타이핑을 하면 되는데, 이 때 주의할 점은 바이너리 편집기의 중앙 부분이 -(대쉬) 처리 된다는 점이다. 주인장은..
* OS 공부를 시작하다 #1 책 선정 이유 본래 Geek OS에 관심이 있어 찾아봤지만, 생각보다 관련 자료가 많지 않았다. Geek OS에 관심이 갔던 이유는, 상당히 괜찮은 교육용 OS로 평가되어 있기 때문이었다. 직접 사용해보진 않았지만, 이걸 이용하는 학습생은 직접 OS를 만들어가며 그 원리를 깨우친다고 한다. 하지만, Geek OS 관련 자료는 정말 적었다. 정확히 말하면, 한글로 된 자료들 말이다. 어려운 내용의 과목이기에 한국어로 된 자료들을 찾아보려 했으나 거의 없었다. 대학에서 강의하는 내용의 피피티가 있긴 했지만, 말 그대로 강의를 위한 피피티 였기에, 초심자가 혼자 공부하기에 적절치 않다고 판단했다. 따라서 한국어로 기술되어 있으며, 직접 만들면서 배우는 OS학습서가 필요하다고 판단..
- Total
- Today
- Yesterday