當前位置:首頁 » 編程軟體 » c編譯匯編

c編譯匯編

發布時間: 2022-01-15 07:24:16

⑴ 有什麼軟體能把c語言的程序編譯成匯編語言

把c語言程序編譯鏈接成可執行文件,然後反匯編那個可執行文件,之後你看到的將是c語言程序的等價匯編語言程序.

⑵ C語言為什麼要先編譯成匯編語言

C語言,具有可移植性,或者說同樣的代碼可以在不同cpu平台上運行得到同樣的結果
匯編語言,移植性差,一般針對某型cpu,每個類型的cpu都有自己的匯編語言
為保證C語言編制的通用演算法的可移植性,比如我們用C編寫了一套mp3解碼演算法程序,要在pc機上、手機上都能用,那麼我們就採用通用的C編譯器,將C語言程序編譯成指定CPU的匯編語言,再匯編成機器可執行程序。
另一個用途是程序優化問題,在C語言層次,由於是高級語言,不涉及底層硬體,那麼底層硬體的特性不能夠得到充分利用,在需要優化演算法的場合,我們需要將C語言演算法編譯生成匯編程序,然後修改需要優化的匯編程序達到目的。比如,你在手機上經常會遇到音頻解碼器,需要安裝,而且不同的cpu需要選擇不同的解碼器,這些解碼器應當就是在匯編層次上優化了演算法的可執行代碼,關鍵部分經過匯編級優化,不需要優化部分仍然使用C語言編譯的結果。

⑶ 我想用gcc編譯一個匯編程序,就是把c語言轉成匯編。

假設你的函數保存在main.c中。
gcc
-S
main.c
-o
main.s
-S表示assembly
匯編的意思,也就是生成匯編文件

⑷ 怎樣將C語言編譯成匯編

  1. 編譯完了,反匯編。

  2. 你自己學匯編語言,把實現改成匯編,演算法可能要調整。

  3. 有一個在線編譯器,可以直接編譯成匯編:

很好用。

⑸ 匯編語言和C語言各個用什麼軟體來編譯

C語言常用的編譯軟體有Microsoft
Visual
C++,Borland
C++,Watcom
C++
,
Borland
C++
Builder,Borland
C++
3.1
for
DOS,Watcom
C++
11.0
for
DOS,GNU
DJGPP
C++,
GUN
CC,Lccwin32
C
Compiler
3.1,Microsoft
C,High
C,等等......
大學里教學用的是TC2.0,這里的T表示TURBO,是Borland公司的產品.
匯編語言,一般是MASM
很多版本,是微軟公司的,還有就是TASM,是borland公司的,還有NASM

⑹ C語言被編譯後是匯編程序嗎

當然不是,編譯後是OBJ文件,連接後成立可執行代碼,是二進制機器碼了。

⑺ c語言編譯器是用匯編語言寫的嗎

這個是肯定的。演算法優化,首先是邏輯描述的精煉化。至於C,只是計算邏輯到計算機模式的一種映射,而匯編僅是利用特殊計算機指令的一個更深的藕荷。 不過有一點,C語言由於是計算邏輯到計算機模式的映射,所以不單單考慮演算法本身,還肩負數據組織的實現。數據流動方式,數據組織方式,對計算性能的影響也很大。這要看是否和計算機組成原理相貼近。其實這塊也是側重邏輯的設計,而不是具體機器指令的實現,因此匯編是無能為力的。 不過在DSP等特殊CPU架構,C語言和編譯器無法很好的將上述邏輯轉換為機器指令,或者C本身的邏輯無法很好的貼近CPU的特性,那麼還是得匯編。一個典型的例子就是如何使用DSP的並行指令(通常的矢量計算)和並發指令集,幾個不同的指令(隸屬不同處理單元)的同時執行。使用C語言無法描述清楚這些邏輯方式,而編譯器又太水,則還是不得不用匯編。此時C語言僅能淪落到大的計算機組織特性的貼近,和整體框架,模塊的設計上。細節方面無能為力了。

⑻ 可以顯示C語言編譯成匯編語言全過程的編譯器

如果你有用IDE的話,比如Visual Studio、Delphi等,應該都是可以設置C和匯編同時查看的。
一句C對應一句匯編,也相當於「單步編譯」吧!

⑼ C語言和匯編語言的關系

程序員編寫的C語言代碼,首先要經過C語言編譯器,生成匯編代碼,這個過程稱為編譯階斷,當C語言編譯器生成匯編代碼後,再調用匯編器來將匯編代碼編譯成匯編指令。

這是一種站在巨人肩人的作法,最早的C++編程語言也是這樣的實現方法,只不過那時候叫Cfront程序,Cfront程序的作用是將C++代碼轉換成C語言代碼,類似於一個文本處理器,然後再調用C語言編譯器,將C源碼編譯成匯編代碼,然後再調用匯編器將匯編代碼編譯成機器碼。

這個過程,在Windows平台上不容易操作,但是在Linux平台上很容易看到。以gcc這款c語言編譯器為例,它實際上是四個小程序。
cp: c語言預處理程序,有它負責進行預處理操作。
cc: C語言編譯器,它負責將C源碼編譯成匯編代碼。
as: 匯編器,它負責將匯編代碼編譯成機器碼,一般使用gcc test.c這樣的命令編譯C語言時,會生成一個a.out的程序,它實際上指的就是as ouput,即匯編器輸出文件。
link: 鏈接器,它負責將匯編器輸入的機器碼和庫打包成一個操作系統可以運行的可執行文件,在Linux上的可執行文件格式是ELF格式,這個格式的實現是有鏈接器來完成的。

⑽ C++程序進行編譯後會生成C語言代碼還是匯編代碼

不會是這兩種語言代碼,而是編譯後直接生成二進制文件(.OBJ文件),再通過連接器鏈接成二進制文件(.EXE/.DLL/.OCX/.SYS等)

熱點內容
sqllocaldb 發布:2024-12-22 20:07:08 瀏覽:122
如何找到我的伺服器 發布:2024-12-22 19:52:14 瀏覽:298
手掛機腳本游 發布:2024-12-22 19:38:00 瀏覽:429
層次原理圖如何編譯 發布:2024-12-22 19:27:17 瀏覽:371
android計算緩存大小 發布:2024-12-22 19:16:54 瀏覽:660
php訪問模塊 發布:2024-12-22 19:05:24 瀏覽:272
電梯IC加密 發布:2024-12-22 19:04:47 瀏覽:376
腳本圈是引流加粉嗎 發布:2024-12-22 18:41:26 瀏覽:392
ajax文件上傳表單提交 發布:2024-12-22 17:55:00 瀏覽:856
win7無法共享的文件夾 發布:2024-12-22 17:53:39 瀏覽:41