> 백엔드 개발 > C++ > GCC를 사용하여 C/C 소스에서 어셈블리 코드를 어떻게 생성할 수 있습니까?

GCC를 사용하여 C/C 소스에서 어셈블리 코드를 어떻게 생성할 수 있습니까?

Susan Sarandon
풀어 주다: 2024-12-21 13:06:14
원래의
959명이 탐색했습니다.

How Can I Generate Assembly Code from C/C   Source Using GCC?

GCC의 C/C 소스에서 어셈블러 출력 생성

컴파일 프로세스를 분석하려면 C/C 소스에서 생성된 어셈블리 코드를 가져옵니다. 매우 귀중할 수 있습니다. GCC는 이를 달성하기 위해 -S 옵션을 사용하고 objdump를 활용하는 두 가지 방법을 제공합니다.

-S 옵션 사용:

-S 옵션은 GCC에 다음을 실행하도록 지시합니다. 전처리기를 실행하고 초기 컴파일을 수행하지만 어셈블러 실행 전에 중지됩니다. 기본적으로 출력은 확장자가 .s인 파일에 저장됩니다. 사용자 정의 출력 파일을 지정하려면 -o 옵션을 사용하십시오.

gcc -S helloworld.c
로그인 후 복사

objdump 사용:

결과 객체 파일만 있는 경우 objdump를 사용할 수 있습니다. --disassemble 옵션(더 짧은 버전의 경우 -d)을 사용하여 코드:

objdump -S --disassemble helloworld > helloworld.dump
로그인 후 복사

추가 옵션:

  • -fverbose-asm(gcc용)은 어셈블리 코드의 C 피연산자에 대한 자세한 설명을 제공합니다.
  • -rwC(objdump)는 기호 재배치를 표시하고 줄 바꿈을 비활성화하며 정리를 해제합니다. C 이름.
  • -Mintel(objdump)은 x86 아키텍처용 디스어셈블리 구문을 Intel로 변경합니다.

예:

자세한 정보를 얻으려면 기호 참조를 위한 자리 표시자를 포함할 수 있는 .o 파일의 Intel 구문이 포함된 어셈블러 출력, 사용:

objdump -drwC -Mintel -S foo.o | less
로그인 후 복사

위 내용은 GCC를 사용하여 C/C 소스에서 어셈블리 코드를 어떻게 생성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿