首頁 >後端開發 >C++ >如何使用 GCC 從 C/C 原始碼產生彙編程式碼?

如何使用 GCC 從 C/C 原始碼產生彙編程式碼?

Susan Sarandon
Susan Sarandon原創
2024-12-21 13:06:14965瀏覽

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。

範例:

取得詳細組譯程式使用Intel 語法從.o 檔案輸出,該檔案可能包含符號引用的佔位符,使用:

objdump -drwC -Mintel -S foo.o | less

以上是如何使用 GCC 從 C/C 原始碼產生彙編程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn