2011-11-05 7 views

답변

17

-fverbose-asm 생성 된 어셈블러에 코드를 "설명하는"생성 된 주석이 있기 때문에 사용하는 것이 좋습니다.

그리고 GCC 최적화가 수행하는 것을 이해하기 위해 -fdump-tree-all을 시도해 볼 수도 있습니다 (그러나이 경우 파일 수는 입니다!).

21

GCC에 개체 파일 (또는 실행 파일) 대신 어셈블리 파일을 생성하도록 요청할 수 있습니다. 예를 들어

:

gcc -Wall -c test.c 

이 TEST.C (test.o)에서 개체 파일을 생성합니다.

gcc -Wall -o test test.c 

은 (test.s) TEST.C에서 어셈블리 파일을 생성합니다

gcc -Wall -S test.c 

TEST.C에서 '테스트'라는 이름의 실행 파일을 생성합니다

+4

전혀 동의하지 않음 : 어셈블리에 * 컴파일 한 다음 * 오브젝트 파일에 * 어셈블하십시오. 예를 들어, 내 시스템에서'-S'에 대한 문서는'적절한 컴파일 단계 후 중지; 조립하지 마라. " –

+2

왜 어셈블리에"컴파일 "하지 않습니까? 그게 정확히 뭐하는거야! 컴파일 중! 어셈블리 코드 일명 어셈블리! 컴파일 한 후에는 0-1 또는 문자로 작성해야합니다. – Shahbaz

+2

필자 의견으로는 컴파일이란 소스 코드를 기계어로 변환하는 것을 의미합니다. 어셈블리는 기계어 코드에 아주 가깝더라도 소스 코드입니다. – Macmade

12

어디 꽤 많이 넣어 .

gcc -O3 -S -o output.asm ... 

output.asm에서 생성 된 assemby를 저장합니다.

+2

기본적으로'-S'는'filename.s'와 같은 것을 씁니다. 그래서'-o' 매개 변수가 필요하다고 생각하지 않습니다. –

+1

올바른 것이므로 출력 파일의 이름을 선택하기 만하면됩니다. – Mat

+0

마침내 간단한 대답 ... 고마워! – dbkoren

관련 문제