導航:首頁 > 源碼編譯 > c語言編譯後是匯編的嗎

c語言編譯後是匯編的嗎

發布時間:2022-08-03 22:52:35

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

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

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

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

❸ C語言本身是用什麼語言開發的匯編

如果問的是C語言編譯器的話,第一個C語言的編譯器應該是匯編開發的,但是以後就可以用C語言開發C語言編譯器了,編譯這東西並不存在想當然的「大魚吃小魚」的規則,用理論上用JAVA來開發C語言的編譯器都是可以的,但是JAVA運行在JVM上而JVM又是C++開發的,繞了一圈,所以用JAVA這種虛擬機語言開發編譯器不是一種好選擇,據我所知JAVA的編譯器JAVAC倒是用JAVA開發的。
在當下很多編譯器包括C語言的編譯器都用C或者C++或者C/C++混合開發了,連nasm匯編器都是用C/C++開發的,「編譯器悖論」
現在90%的編譯器都是用C/C++開發的,包括他們自己的編譯器

❹ c語言是匯編語言的封裝嗎

不是,需要有特殊的編譯程序將c語言翻譯成匯編,然後將匯編再翻譯成計算機可執行代碼

❺ C語言屬於匯編語言嗎

兩個不同的概念,C語言屬於高級語言,裡面的INC和LIB文件夾裡面有很多API的封裝,你可以很方便的調用不同的庫函數。
匯編是底層的語言,是最接近機器語言的一種語言。執行效率非常高,所形成的文件大小很小。如果你夠犀利,可以用匯編語言去調用C的函數庫。
你可以下載masm32的編譯器看看,裡面的INC和LIB文件夾的內容和C都是一樣的
不同的是,匯編只是將C語言裡面的INC和LIB裡面的內容用匯編語言翻譯了一遍而已。

❻ C語言中高級語言通過編譯器得到的是匯編語言嗎

不是哦,編譯得到的結果是二進制可執行文件,要得到匯編源碼還需要對其進行反編譯

❼ c語言是先翻譯為匯編語言嗎

通常所說的C語言編譯過程是這樣的:
先是預編譯處理(帶#符號的語句都在這個階段完成處理,包括文件包含、宏定義展開、條件預編譯、語法檢錯等等)->
再是編譯階段。就是將C語言按照合適的語句翻譯成匯編語言。->
再就是匯編編譯。
就是將上一步的匯編語言翻譯成機器碼,每個.c文件都得到相應的.obj(目標文件)->
接下來就是連接階段啦。就是將整個工程的.obj文件以及庫函數連接成最終的一個.bin(或者是.hex之類的)可執行文件。
放到合適的環境中,就可以執行這個文件啦。

❽ c語言是用什麼語言編寫的匯編嗎

C語言源自Ken Thompson發明的B語言,而 B語言則源自BCPL語言。

1967年,劍橋大學的Martin Richards對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。

1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。


(8)c語言編譯後是匯編的嗎擴展閱讀

C語言編譯器:

GCC,GNU組織開發的開源免費的編譯器

MinGW,Windows操作系統下的GCC

Clang,開源的BSD協議的基於LLVM的編譯器

Visual C++:: cl.exe,Microsoft VC++自帶的編譯器

C語言集成開發環境:

Code::Blocks,開源免費的C/C++ IDE

CodeLite,開源、跨平台的C/C++集成開發環境

Dev-C++,可移植的C/C++IDE

C-Free

Light Table

Visual Studio系列

❾ 實踐,C語言是怎麼變成匯編的

c語言未必會經歷匯編語言這一環節,准確的說,c語言經歷編譯器(必須),鏈接器(某種程度上非必須)的處理,成為可執行代碼(一般是二進制代碼)。
而匯編也許是目前多數編譯器提供的中間環節(vc,vs都提供在調試運行下使用反匯編的功能),因為對於匯編語言來說,進一步編譯成機器語言的難度很低,只需查找有限的匯編指令對應的編碼,如MOV,ADD等,具體編碼與機器有關。
而你說的c語言變成匯編這一過程,正是編譯器的核心工作,也是最為困難的。需要對你的程序(本質上是一個超長的字元串)做分割,詞法分析,語法分析,最後翻譯成匯編。

閱讀全文

與c語言編譯後是匯編的嗎相關的資料

熱點內容
用什麼工具製作安卓應用 瀏覽:484
單片機數碼管的代碼 瀏覽:775
第一款安卓手機是什麼牌子 瀏覽:394
java非同步web 瀏覽:270
51單片機讀tf卡 瀏覽:936
linux下獲取文件 瀏覽:318
加密文件電腦顯示無屏幕截取許可權 瀏覽:352
虛榮安卓用什麼充值 瀏覽:752
阿里雲沒有伺服器如何備案 瀏覽:706
python用戶特性總結 瀏覽:730
華為門鑰匙加密卡怎麼辦 瀏覽:921
南京解壓車要帶什麼 瀏覽:567
天堂2編譯視頻教程 瀏覽:397
伺服器沒有進程怎麼辦 瀏覽:789
阿里雲發布新物種神龍雲伺服器 瀏覽:64
數據結構遞歸演算法統計二叉樹節點 瀏覽:672
ev3怎麼編程 瀏覽:706
gzip壓縮教程 瀏覽:353
解壓模擬例子 瀏覽:989
流媒體伺服器如何實現視頻轉發 瀏覽:62