GCC에서 어셈블시 버그???

글쓴이: 익명 사용자 / 작성시간: 화, 2002/05/07 - 9:08오후
커맨드라인 입력받는 간단한 예제를 구현하고 있었거든요
(즉, c에서의 main(int argc, char *argv[]))
ex ) ./xyz abc def
이렇게 하면 argc로 3이 나오고 그 다음 포인터 값으로
./xyz, abc, def 를 화면에 출력시키는건데
gas와 nasm에 문법만 빼고 같은 로직으로 예제를 짯거든요
그런데 nasm에서는 잘돌아가는데..gcc로 어셈블한
(gcc -o xyz xyz.s) 예제 파일은 엉뚱한 값만 생성해내고
값이 안나오는 겁니다.
한 예로 프로그램시 첨음의 pop는 인자갯수 값(argc)을 가지고
있는데 gas에서는 두번의 pop을 해야 그 인자값이 나오는 거예요
결국 한참의 삽질 끝내 as로 직접 어셈블하니 결과가 잘 나오더라구요
제가 궁금한건 gcc가 알아서 as를 거쳐서 어셈블 해주는 걸로
알고 있는데 어떻게 저런 상이한 결과 값이 나오는지 궁급합니다.
고수님들의 조언 부탁드리죠^^
Forums:
댓글 달기