kernel프로그래밍중에 난관에 부딛혓습니다..ㅠㅠ
글쓴이: intmain1202 / 작성시간: 월, 2010/11/15 - 4:52오후
현재 bootsect에서 보호모드로 진입후..
bootloader을 0x20000번지에 올립니다.. 0x20000번지에는 visual2008로 개발되었기때문에 pe구조가 붙어서
0x20400번지에 bootloader코드가 있어서 점프를 햇더니 실행은됩니다..
unsigned char *kernel = "hello os!";
일허게 kernel을 출력하면 아무것도 나오지않아 hex editor로 보니 hello os는 0x20600번지에 있더군요
그래서 unsigned char * kernel = (unsigned char*)0x20600;
번지로하니 kernel변수 출력이 정상적으로 됩니다.
알아보니.. .data 섹션 재배치를 해야되는것도 같고..
아니면 visual 2008이 binary파일로 pe구조없애고 나왓으면 하는데........
혹시 visual 2008옵션이나.. 아니면 섹션재배치를 어떻게 해야되는지...
섹션재배치를한다면 현재 bootsect에서 보호모드로 진입후 visual 2008로
bootloader.asm + syncos.c = syncos.bin 이 나오는데요 bootsect에서 pe섹션재배치를 하면안될것같은데 512바이트초과문제로..? syncos에서 섹션재배치를 해도되는건지..
어떻게 해야될지 머리가 아픕니다.. 고수님들 부탁드립니다 어떻게 해야될지 난감하네요;;
Forums:
댓글 달기