匯編c語言
A. 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格式,這個格式的實現是有鏈接器來完成的。
B. C語言和匯編語言的區別是什麼
區別如下:
(1)兩者編譯組成不同。匯編語言是將由0、1組成的機器語言用具有簡單語義的英文代碼表示,而C語言不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等。
(2)兩者被計算機識別的路徑不同。匯編語言通常用於對硬體的直接操控。而且C語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行。
(3)兩者用處不同。匯編語言通常用在程序中最核心的、控制硬體的代碼,一方面是安全,另一方面提高運行速度。而C語言通常用在計算機外用功能上。
(4)兩者學習難易程度不同。匯編語言所需要的編繪知識很多很復雜,經常被開發者使用。而C語言是一門很簡單方便的語言,編程者也就不需要有太多的專業知識。
計算機語言(Computer Language)指用於人與計算機之間通訊的語言。計算機語言是人與計算機之間傳遞信息的媒介。計算機系統最大特徵是指令通過一種語言傳達給機器。計算機語言從低級到高級可以分為:
(1)機器語言,即由0、1組成的機器硬體可以識別的語言;
(2)低級語言,即匯編語言
(3)中級語言,如C語言
(4)高級語言,如C++,JAVA,C#等。
(2)匯編c語言擴展閱讀:
如今通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言和機器語言實質是相同的,都是直接對硬體操作,只不過指令採用了英文縮寫的標識符,容易識別和記憶。源程序經匯編生成的可執行文件不僅比較小,而且執行速度很快。
高級語言是絕大多數編程者的選擇。和匯編語言相比,它不但將許多相關的機器指令合成為單條指令,並且去掉了與具體操作有關但與完成工作無關的細節,例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由於省略了很多細節,編程者也就不需要有太多的專業知識。
高級語言主要是相對於低級語言而言,它並不是特指某一種具體的語言,而是包括了很多編程語言,如流行的vb、vc、foxpro、delphi等,這些語言的語法、命令格式都各不相同。
高級語言所編制的程序不能直接被計算機識別,必須經過轉換才能被執行,按轉換方式可將它們分為兩類:解釋類和編譯類。
C. 匯編語言和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的語言代碼首先自動轉換為匯編代碼。
D. 匯編語言怎麼實現c語言
C語言可以內嵌匯編語言,匯編不能寫C語言。
E. 匯編c語言那個好
用c語言寫程序簡單快捷,大部分人用它,
匯編速度快,游戲引擎之類的對速度要求很高,必須是匯編
F. c語言和匯編語言的區別
C語言是需要經過機器語言解釋和翻譯才能被硬體執行的高級語言。
匯編是一種直接對於硬體操作的語言,屬於低級語言,面向硬體。
另外:兩種語言的語法也是完全不同的。你可以在網上找一些例子看看就知道區別了。
G. 匯編語言與C語言有什麼區別
1、操作復雜程度的不同
c語言,與匯編語言相比,c語言在更加接近人的一般思維,因此在程序的設計過程中比較容易操作,此外在進行一些復雜的操作,運算時,c語言比匯編就要簡單很多,尤其是c語言中的豐富的函數庫,可以直接實現一些原本很復雜的功能,並且從代碼量來說任意一個c語言程序,通過反匯編之後變成匯編語言程序,其長度都可能要增加好幾倍。
2、使用范圍的不同
c語言程序的事件將會只是編寫匯編語言程序的幾分之一,從編寫程序的效率上來說c語言無疑更高,此外C語言是高級程序語言因此可移植性較好,不太受到到硬體設備的限制。
在實現一個功能時,匯編語言可以直接奔著目標去,而C語言則是給你提供了一種對於對於這種問題的普遍處理辦法,不具有針對性,因此會有許多多餘的在這個問題中不需要的過程,因此可能回事程序較大,運行較慢。相對與匯編語言,C語言更加適合一些較大型項目的開發。
3、運行的速度和效率不同
程序沒有了匯編語言計算機直接就無法運行,因為匯編語言是基於計算機底層硬體的編程,通過它實現了對cpu,內存,硬碟以及外界設備的直接操作,因為直接所以匯編語言在程序的大小,執行的速度與效率方面幾乎無可比擬,但是也是因為直接,所以匯編程序難以移植,且完成相同的操作代碼量太大,在進行一些大的項目是,單獨使用匯編進行編程幾乎不可能實現。
H. 匯編與C語言
匯編語言是直接針對硬體進行操作的語言。
適合編寫控制類型的程序。
但是很多人,學習硬體比較吃力,那就去學習C語言吧。
C語言是脫離硬體的,可移植性強,比較適合編寫演算法為主的程序。
但是數據類型、指針等概念,學習起來比學硬體還難。
I. c語言是用什麼語言編寫的匯編嗎
C語言源自Ken Thompson發明的B語言,而 B語言則源自BCPL語言。
1967年,劍橋大學的Martin Richards對CPL語言進行了簡化,於是產生了BCPL(Basic Combined Programming Language)語言。
1972年,美國貝爾實驗室的 D.M.Ritchie 在B語言的基礎上最終設計出了一種新的語言,他取了BCPL的第二個字母作為這種語言的名字,這就是C語言。
(9)匯編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系列
J. 匯編語言和C語言有什麼區別
1:
匯編語言是面向具體CPU及其硬體結構的語言
C語言可以做到硬體無關性
2:
匯編語言效率較高
C語言效率相對較低
3:
匯編語言是非結構語言,可讀性較弱
C語言是結構語言,可讀性較強
4:
匯編語言基本沒有可移植性
C言可移植性很強
5:
匯編語言沒有函數庫,所有代碼需要自己組織
C語言有豐富的函數庫可供調用。