우선 제가 맡은 부분은 다음과 같습니다.
get common.s /* @@@as86 "include" will bypass the CPP 여기서 cpp는??*/
/* @@@get명령어는?? include의 의미인듯?ㅡ.ㅡ? */
==========================================================
먼저 get의 정확한 사용에 대해서는 찾지 못하였습니다.
google, naver, 어셈러브, ... 등등 여기 저기 찾아도 나오질 않네요. ㅡㅡ;;
혹시 누군가 시간되시면 정확한 내용을 찾아주시기를 부탁드리면서.ㅎㅎ
(1)
우선 CPP 는 Makefile을 살펴보니 'gcc -E' 로 되어있습니다.
'-E' 옵션은 gcc의 컴파일 과정 중에서 C 전처리 과정만을 처리하라는 옵션입니다.
[ CPP = C PreProcessing ]
소스코드가 복잡한 선택적 컴파일을 하고 있을때,
그 선택적 컴파일이 어떻게 일어나고 있는지 알고 싶은 경우 사용한다고 합니다.
(2)
common.s 는 CPP를 사용하여 common.h로 부터 생성되었습니다.
lilo.h와 비교해보니 LILO_ASM관련 전처리에서 차이를 보입니다.
common.h는 #ifndef 로 lilo.h 는 #ifdef로 전처리 하고 있었습니다.
lilo.h를 보니 처음 부분에 이런 comments가 있습니다.
/* This file is also included by the boot loader assembler code. Put
everything that isn't legal C syntax or isn't swallowed by the
preprocessor into #ifdef LILO_ASM ... #endif */
first.s 는 lilo.h와 common.h에서 필요한 부분만을 가져다 쓰기 위해 저런 작업을 하며,
'get'은 전처리된 common.s를 include처럼 가져온다고 생각해도 될것 같습니다.
"as86 "include" will bypass the CPP" 에서 보았을 때
'get'을 사용한 이유는 as86으로 어셈블 할 때 include에서 가져오는 부분은
전처리를 하지 않으므로 get을 이용하여 필요한 파일을 가져와 전처리 한다...
라고 봐야할것 같은데..
as86으로 어셈블해서 결과값까지 확인해봤으면 좋겠지만... 휴..
==========================================================
하루종일 여기저기 뒤져보고 했는데 결국 여기까지네요. 횡설수설 떠들다 만 느낌.. ㅠㅜ
조금 더 찾아보겠지만 더 나올지는 잘 모르겠습니다. ㅡㅡ
해서 여기까지 올립니다.
혹시 더 아시는분이 추가해주시길 바라며~
get common.s /* @@@as86 "include" will bypass the CPP 여기서 cpp는??*/
/* @@@get명령어는?? include의 의미인듯?ㅡ.ㅡ? */
==========================================================
먼저 get의 정확한 사용에 대해서는 찾지 못하였습니다.
google, naver, 어셈러브, ... 등등 여기 저기 찾아도 나오질 않네요. ㅡㅡ;;
혹시 누군가 시간되시면 정확한 내용을 찾아주시기를 부탁드리면서.ㅎㅎ
(1)
우선 CPP 는 Makefile을 살펴보니 'gcc -E' 로 되어있습니다.
'-E' 옵션은 gcc의 컴파일 과정 중에서 C 전처리 과정만을 처리하라는 옵션입니다.
[ CPP = C PreProcessing ]
소스코드가 복잡한 선택적 컴파일을 하고 있을때,
그 선택적 컴파일이 어떻게 일어나고 있는지 알고 싶은 경우 사용한다고 합니다.
(2)
common.s 는 CPP를 사용하여 common.h로 부터 생성되었습니다.
lilo.h와 비교해보니 LILO_ASM관련 전처리에서 차이를 보입니다.
common.h는 #ifndef 로 lilo.h 는 #ifdef로 전처리 하고 있었습니다.
lilo.h를 보니 처음 부분에 이런 comments가 있습니다.
/* This file is also included by the boot loader assembler code. Put
everything that isn't legal C syntax or isn't swallowed by the
preprocessor into #ifdef LILO_ASM ... #endif */
first.s 는 lilo.h와 common.h에서 필요한 부분만을 가져다 쓰기 위해 저런 작업을 하며,
'get'은 전처리된 common.s를 include처럼 가져온다고 생각해도 될것 같습니다.
"as86 "include" will bypass the CPP" 에서 보았을 때
'get'을 사용한 이유는 as86으로 어셈블 할 때 include에서 가져오는 부분은
전처리를 하지 않으므로 get을 이용하여 필요한 파일을 가져와 전처리 한다...
라고 봐야할것 같은데..
as86으로 어셈블해서 결과값까지 확인해봤으면 좋겠지만... 휴..
==========================================================
하루종일 여기저기 뒤져보고 했는데 결국 여기까지네요. 횡설수설 떠들다 만 느낌.. ㅠㅜ
조금 더 찾아보겠지만 더 나올지는 잘 모르겠습니다. ㅡㅡ
해서 여기까지 올립니다.
혹시 더 아시는분이 추가해주시길 바라며~
댓글 0
.