개발하면서/etc
드디어 IA-32e모드로 넘어갔다!!!!
오산돌구
2015. 2. 19. 22:41
반응형
아~!! 드디어 IA-32e 모드로 넘어갔다.
의지가 약해서 듬성듬성 하다보니까 오래걸렸다.
이젠 놀만큼 놀았다고 생각해서 우직하게 준비해야되는데 동기부여가 아직 덜 됐나보다.
ImageMaker때문에 이틀정도 걸렸다... WriteKernelInformation 함수에 lseek부분에서 오류가 발생!
이틀동안 삽질하다가 포기하는 마음으로 #include <unistd.h> 추가해줬더니 정상동작했다!! : )
asm이나 간단한 C소스는 직접 입력했는데 ImageMaker, makefile, elf_xxx.x파일은 복붙했다.
앞으로 뭐가 있나 다시 봤는데...타이핑하는게 더 줄것같다ㅋㅋㅋㅋㅋ
10장에서 IA-32e 모드에 스택을 지정하는 부분이 있는데 Stack Segment를 0x10으로 설정하고 주석으 다음과 같다.
스택을 0x600000~0x6FFFFF 영역에 1MB 크기로 생성
응!! 0x10이랑 0x600000 은 뭔 관계지? 했는데 딱맞는 글이!!
http://jsandroidapp.cafe24.com/xe/4588
즉 16비트 리얼모드만 하한선을 정하고 32/64에서는 의미없다. 0x10은 세그먼터 셀렉터의 개념으로 세그먼트 디스크립터를 가리킨다.
반응형