當前位置:首頁 » 編程語言 » c語言與匯編

c語言與匯編

發布時間: 2022-01-12 06:28:37

㈠ 匯編語言和c語言有什麼區別

1:
匯編語言是面向具體CPU及其硬體結構的語言
C語言可以做到硬體無關性
2:
匯編語言效率較高
C語言效率相對較低
3:
匯編語言是非結構語言,可讀性較弱
C語言是結構語言,可讀性較強
4:
匯編語言基本沒有可移植性
C言可移植性很強
5:
匯編語言沒有函數庫,所有代碼需要自己組織
C語言有豐富的函數庫可供調用。

㈡ C語言與匯編語言

樓上都不懂。
C相對匯編來說的優勢主要在移植性上和開發效率上。程序執行效率不如匯編。所以如果不關注程序執行效率的話,推薦用C.當然,現在絕大部分的處理器都有C編譯器。
但是為什麼8086上採用匯編語言呢?
最主要的的原因是,8086有足夠多的通用寄存器。
為什麼有足夠多的通用寄存器就不需要用C了呢?
原因在於,你就不需要層層壓棧來控制參數的保存和傳遞,而這在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語言有什麼區別

1、操作復雜程度的不同

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

2、使用范圍的不同

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

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

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

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

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

區別如下:

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

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

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

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

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

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

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

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

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

(5)c語言與匯編擴展閱讀:

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

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

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

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

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

㈥ 匯編與C語言

簡單的以個人經歷說吧
C語言屬於高級語言
匯編語言屬於低級語言(高低並不是高等低等
而是處理的層面不同)
將來做開發
需求的還是高級語言
如C/C++/C#
JAVA
匯編則用於解密加密
破解一類
我的感覺
初學者學C語言
然後可以涉獵匯編
因為匯編接觸的是底層
能讓你理解C語言更透徹
比如樓上的朋友說指針什麼的難
很難理解
如果你接觸了匯編
像C語言指針操作
內存非配
調用子
函數
時是怎麼調用的
你都能夠知道
都知道了他的內幕
那你對他理解的還不透徹嗎

㈦ c語言和匯編語言的區別

C語言是需要經過機器語言解釋和翻譯才能被硬體執行的高級語言。
匯編是一種直接對於硬體操作的語言,屬於低級語言,面向硬體。
另外:兩種語言的語法也是完全不同的。你可以在網上找一些例子看看就知道區別了。

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

匯編語言屬低級語言,而C語言是高級語言,所謂高級語言就是更容易被人們理解的語言,其實匯編語言能實現的功能往往也能通過C語言來實現,甚至用C語言會更簡單,但是匯編語言有一個優勢是其他任何語言所不具備的,這也是為什麼匯編語言一直能在編程中佔有一席之地,那就是匯編語言對硬體的直接控制,也就是說他能直接對硬體操作,可以繞過操作系統等等之類。雖然有的領域其他編程也能實現,但是在很多地方往往是匯編語言能更加簡單,更加完美的完成。而且學好了匯編語言你就能對cpu是怎麼工作的有了清晰的認識,所以學計算機專業的一般都會學匯編語言。

㈨ 匯編語言與C語言有區別嗎

C語言與匯編都是面向過程的語言。就是寫各種流程。讓程序「開始->1->2->3->4->結束」的寫。但是匯編語言是基於底層的語言。就是說他寫的內容是操作電腦最基本的資源,控制CPU是具體到操作寄存器、累加器等。硬體相關性非常強。代碼非常難讀懂,就是純機器語言,也很難移植。C語言是從匯編基礎上發展出來的,它更像人類語言。在處理過程邏輯時更容易讓人理解。C語言的編譯是首先編譯成匯編的。程序員可以看到C語言轉換後的匯編代碼。然後最終成為執行文件。大大提高了開發效率。但是匯編執行效率高,體積小,現在的病毒都是匯編寫的。幾K位元組大小都很強大了。要是同樣用C語言寫要幾MB位元組。

㈩ c語言和匯編語言的區別

C語言舉例:
void main(void)
{.....
}
匯編語言舉例:
ORG 0000H
LJMP MAIN
MAIN:
NOP ;
.......
LJMP MAIN
END

熱點內容
crv哪個配置性價比高2021 發布:2024-09-17 04:07:51 瀏覽:35
wincc圖形編譯在哪裡 發布:2024-09-17 03:58:26 瀏覽:977
androidubuntu 發布:2024-09-17 03:50:27 瀏覽:701
識夢源碼 發布:2024-09-17 03:50:18 瀏覽:26
諾基亞密碼忘了打什麼電話 發布:2024-09-17 03:27:09 瀏覽:555
樹深度優先演算法 發布:2024-09-17 03:26:58 瀏覽:472
跳轉頁源碼 發布:2024-09-17 03:13:05 瀏覽:543
html文件上傳表單 發布:2024-09-17 03:08:02 瀏覽:785
聊天軟體編程 發布:2024-09-17 03:00:07 瀏覽:726
linuxoracle安裝路徑 發布:2024-09-17 01:57:29 瀏覽:688