當前位置:首頁 » 編程語言 » 編譯器c匯編語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

編譯器c匯編語言

發布時間: 2023-03-19 04:39:16

c語言和匯編語言的區別是什麼

區別如下:

(1)兩者編譯組成不同。匯編語言是將由0、1組成的機器語言用具有簡單語義的英文代碼表示,而C語言不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等。

(2)兩者被計算機識別的路徑不同。匯編語言通常用於對硬體的直接操控。而且C語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行。

(3)兩者用處不同。匯編語言通常用在程序中最核心的、控制硬體的代碼,一方面是安全,另一方面提高運行速度。而C語言通常用在計算機外用功能上。

(4)兩者學習難易程度不同。匯編語言所需要的編繪知識很多很復雜,經常被開發者使用。而C語言是一門很簡單方便的語言,編程者也就不需要有太多的專業知識。

計算機語言(Computer Language)指用於人與計算機之間通訊的語言。計算機語言是人與計算機之間傳遞信息的媒介。計算機系統最大特徵是指令通過一種語言傳達給機器。計算機語言從低級到高級可以分為:

(1)機器語言,即由0、1組成的機器硬體可以識別的語言;

(2)低級語言,即匯編語言

(3)中級語言,如C語言

(4)高級語言,如C++,JAVA,C#等。

(1)編譯器c匯編語言擴展閱讀:

如今通用的編程語言有兩種形式:匯編語言和高級語言。

匯編語言和機器語言實質是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,容易識別和記憶。源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。

高級語言是絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。

高級語言主要是相對於低級語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如流行的vb、vc、foxpro、delphi等,這些語言的語法、命令格式都各不相同。

高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:解釋類和編譯類。

❷ 匯編語言和c語言區別

匯編語言與C語言的區別:

1、在匯編語言中,為一個處理器編寫的程序不能在另一種類型的處理器上運行。在C語言程序中,程序獨立於處理器類型運行。

2、匯編語言代碼的性能和准確性優於C代碼。

3、C語言必須提供額外的指令來在計算機上運行代碼。

4、匯編語言代碼比C代碼難以理解和調試。

5、 一個或兩個C語言語句擴展為許多匯編語言代碼。

6、匯編語言可以比C別更好地進行通信某些類型的硬體操作只能通過匯編語言執行。

7、在匯編語言中,我們可以直接讀取物理地址上的指針,這在C別是不可能的。

8、在匯編語言中使用位更容易。

9、匯編程序用於在匯編語言中轉換代碼,而編譯器用於在C編譯代碼。

10、C語言的可執行代碼大於匯編語言代碼,因此執行時間較長。

11、由於長的可執行代碼,C程序的效率低於匯編語言程序。

12、與匯編程序員相比,C語言程序員不需要知道處理器中的寄存器等硬體細節。

13、最C的語言代碼首先自動轉換為匯編代碼。

❸ C語言和匯編語言的區別是什麼

區別如下:

1、效率不同

匯編效率高,C語言效率比較低。

2、對硬體的可操控性不同

匯編對硬體的可操控性強,C語言硬體可操控性比較差。

3、代碼體積大小不同

匯編目標代碼體積小,C語言目標代碼體積大。

4、維護性不同

匯編不易維護,C語言容易維護。

5、可移植性不同

匯編可移植性很差,C語言可移植性很好。

(3)編譯器c匯編語言擴展閱讀:

匯編語言運行效率高的原因

匯編語言實質上是機器語言的助記符。 CPU只能運行它所支持的指令集,而這些指令集當中的每條指令都是一些二進制數的序列,也就是「0」和「1」的有序組合;「0」和「1」的組合不便於程序員的記憶因此有了「MOV A 0x40」等這樣的助記符。

所以匯編語言編譯成CPU可執行的機器語言其實只要做一個翻譯的動作就好了。而C語言編寫完程序後,需要通過編譯器將C語言編譯成與相應CPU指令集對應的機器語言。匯編語言與機器語言是一一對應的。

但是C語言,就沒這么好了。C語言的語法是固定的,C語言編寫的程序要編譯成CPU能讀懂的機器語言指令沒辦法一一對應,因此需要有編譯規則了,所以運行效率低一些。也可以說,C語言,是面向程序員的語言,而匯編語言是直接面向CPU的語言。

❹ C語言是用什麼編寫出來的

C語言通過語言開發出來的。

C語言是Dennis Ritchie 在1972年通過Thompson的B語言的基礎之上開發出來的。C是作為從事實際編程工作的程序的一種工具而出現的,所以其主要目標是成為一種有用的語言。同時, C 也是為編程人員開發的語言,這使得它成為當今人們首先的編程語言之一。

C已經成為最重要和流行的編程語言之一。它之所以得到發展,是因為人們嘗試使用它後喜歡它。過去10年中,許多人從C轉而使用更強大的C++語言,但C有其自身的優勢,仍然是一種重要的語言,而且它還是通往C++的必由之路。

(4)編譯器c匯編語言擴展閱讀

C語言特點

1、設計特性:C是一種融合了控制特性的現代語言,而我們已發現在計算機科學的理論和實踐中,控制特性是很重要的。

2、高效性: C是一種高效的語言。 在設計上它充分利用了當前計算機在能力上的優點。C程序往往很緊湊且運行速度快。

3、可移植性:C是一種可移植語言。在一個系統上編寫的C程序經過很少改動或不經修改就可以其他系統上運行。

❺ 匯編語言和C語言的比較

1.
匯編語言是低級語言,C語言是中級語言(它既有高級語言的特點,又具有匯編語言的特點。)

2.
匯編是面向機器語言,C語言是面向過程語言。

3.
匯編在編寫復雜程序時具有明顯的局限性,匯編語言依賴於具體的機型,不能通用,也不能在不同機型之間移植。C語言編寫不依賴計算機硬體的應用程序,有較強的可移植性。

4.
匯編語言編寫的程序執行效率和性能高,C語言次之。

5.
C語言具有繪圖能力強,可移植性,並具備很強的數據處理能力,因此適於編寫系統軟體,三維,二維圖形和動畫。它是數值計算的高級語言。

6.
匯編語言和C語言都可以直接控制硬體。

7.
匯編語言和C語言都是編譯型語言。(編譯型語言編寫的程序需要經過編譯器編譯成計算機可執行文件)

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

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

❼ C語言與匯編語言

樓上都不懂。
C相對匯編來說的優勢主要在移植性上和開發效率上。程序執行效率不如匯編。所以如果不關注程序執行效率的話,推薦用C.當然,現在絕大部分的處理器都有C編譯器。
但是為什麼8086上採用匯編語言呢?
最主要的的原因是,8086有足夠多的通用寄存器。
為什麼有足夠多的通用寄存器就不需要用C了呢?
原因在於,你就不需要層層壓棧來控制參數的保存和傳遞,而這在C里都是編譯器為你自動分配的。在C里,對你而言只要知道你定義的變數名就可以,而不需要知道編譯器是如何分配內存單元或者寄存器來存儲你的變數。當你擁有了足夠多的通用寄存器,用匯編做小程序不是更簡單?

❽ 常見的C語言編譯器是什麼

目前最流行的C語言編譯器有以下幾種:

1、GNU Compiler Collection 或稱GCC

GCC(GNU Compiler Collection,GNU編譯器套件),是由 GNU 開發的編程語言編譯器。它是以GPL許可證所發行的自由軟體,也是 GNU計劃的關鍵部分。

GCC原本作為GNU操作系統的官方編譯器,現已被大多數類Unix操作系統(如Linux、BSD、Mac OS X等)採納為標準的編譯器,GCC同樣適用於微軟的Windows。GCC是自由軟體過程發展中的著名例子,由自由軟體基金會以GPL協議發布。

2、Microsoft C 或稱 MS C

Microsoft C 是c語言的一種IDE(集成開發環境),常見的還有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,High C,Turbo C等等......

3、Borland Turbo C 或稱 Turbo C

Turbo C是美國Borland公司的產品,Borland公司是一家專門從事軟體開發、研製的大公司。該公司相繼推出了一套 Turbo系列軟體, 如Turbo BASIC, Turbo Pascal, Turbo Prolog, 這些軟體很受用戶歡迎。

(8)編譯器c匯編語言擴展閱讀:

C編譯的整個過程很復雜,大致可以分為以下四個階段:

1、預處理階段在該階段主要完成對源代碼的預處理工作,主要包括對宏定義指令,頭文件包含指令,預定義指令和特殊字元的處理,如對宏定義的替換以及文件頭中所包含的文件中預定義代碼的替換等,總之這步主要完成一些替換工作,輸出是同源文件含義相同但內容不同的文件。

2、編譯、優化階段編譯就是將第一階段處理得到的文件通過詞法語法分析等轉換為匯編語言。優化包括對中間代碼的優化,如刪除公共表達式,循環優化等;和對目標代碼的生成進行的優化,如如何充分利用機器的寄存器存放有關變數的值,以減少內存訪問次數。

3、匯編階段將匯編語言翻譯成機器指令。

4、鏈接階段鏈接階段的主要工作是將有關的目標文件連接起來,即將在一個文件中引用的符號同該符號在另外一個文件中的定義連接起來,使得所有的目標文件成為一個能夠被操作系統裝入執行的統一整體。

❾ 匯編語言與C語言有什麼區別

1、操作復雜程度的不同

c語言,與匯編語言相比,c語言在更加接近人的一般思維,因此在程序的設計過程中比較容易操作,此外在進行一些復雜的操作,運算時,c語言比匯編就要簡單很多,尤其是c語言中的豐富的函數庫,可以直接實現一些原本很復雜的功能,並且從代碼量來說任意一個c語言程序,通過反匯編之後變成匯編語言程序,其長度都可能要增加好幾倍。

2、使用范圍的不同

c語言程序的事件將會只是編寫匯編語言程序的幾分之一,從編寫程序的效率上來說c語言無疑更高,此外C語言是高級程序語言因此可移植性較好,不太受到到硬體設備的限制。

在實現一個功能時,匯編語言可以直接奔著目標去,而C語言則是給你提供了一種對於對於這種問題的普遍處理辦法,不具有針對性,因此會有許多多餘的在這個問題中不需要的過程,因此可能回事程序較大,運行較慢。相對與匯編語言,C語言更加適合一些較大型項目的開發。

3、運行的速度和效率不同

程序沒有了匯編語言計算機直接就無法運行,因為匯編語言是基於計算機底層硬體的編程,通過它實現了對cpu,內存,硬碟以及外界設備的直接操作,因為直接所以匯編語言在程序的大小,執行的速度與效率方面幾乎無可比擬,但是也是因為直接,所以匯編程序難以移植,且完成相同的操作代碼量太大,在進行一些大的項目是,單獨使用匯編進行編程幾乎不可能實現。

❿ 從C語言源程序到匯編語言程序,C語言編譯器完成何種處理

編譯器就是把高級語言轉換成機器語言,就是二進制代碼。
匯編語言可以說是機器語言的助記符,轉換比較容易,基本上就是二進制直接替換。
高級語言就復雜了,轉換起來很是麻煩,並且需要優化,所以編譯器是個大的軟體工程。