ホームページ > バックエンド開発 > C++ > GCC を使用して C/C ソースからアセンブリ コードを生成するにはどうすればよいですか?

GCC を使用して C/C ソースからアセンブリ コードを生成するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-12-21 13:06:14
オリジナル
958 人が閲覧しました

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

GCC で C/C ソースからアセンブラ出力を生成

コンパイル プロセスを分析するには、C/C ソースから出力されたアセンブリ コードを取得します非常に貴重なものになる可能性があります。 GCC は、これを実現する 2 つの方法を提供します。-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 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート