C語言和組合語言的區別是什麼,組合語言和C語言有什麼區別?

2022-01-03 20:08:44 字數 5502 閱讀 4172

1樓:郭玉枝褚釵

這裡所說的語言就是跟電腦溝通的手段

電腦只知道什麼時候開哪個通道(1狀態),什麼時候關哪個通道(0狀態),那麼傳遞開關資訊就需要資訊的進入(機器語言),組合語言實質上是機器語言的助記符(讓語言更容易讀懂,實質上是一樣的,翻譯過來就是一系列的0和1),而c語言要通過編譯器才能編譯成機器語言,也就是多套了一層,它沒辦法與機器語言直接一一對應。這是最本質的區別吧,不知道能不能理解,還有一些其他區別都源於此上。彙編直接與cpu溝通,效率更高,但是編起來也比較麻煩,容易出錯

2樓:牧起雲高媼

組合語言是用語言直接控制硬體,由硬體間接達到某種控制效果。

而c語言是一種比較高階的語言,編寫者可以不用去考慮硬體而直接去命令計算機達到這種控制效果。換而言之,組合語言對描述過程更注重,c語言之類的高階語言更注重描述結果。例如組合語言中變數的賦值語句為

mova

b可以解釋為將a暫存器中的值複製至b暫存器。而c語言中直接表示為 b=a,解釋為使b=a

晶片都是由閘電路構成。門有通有斷,對應在計算機**裡是二進位制的1或0。如果直接進行人機對話,只能輸入由0和1組成的**才能交流。

這樣的**太長,而且難記。所以人們想出一個辦法,相互約定,用人們易讀懂的特定表達方式去表達特定的計算機**,再將此表達方式翻譯成計算機能直接讀懂的二進位制**。這樣的一套方便人們表達的表達方式被稱為計算機語言。

3樓:索秀珍尤畫

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

4樓:瀧賢廖琴

所謂語言就是人和計算機交流的一中工具,計算機只能識別機器語言,也就是由二進位制**編寫的,而c語言就是人所熟悉的一種語言,可以經過一些軟體轉換成機器語言,比如:vs...

5樓:僪玉蘭夷茶

彙編寫的**效率高,但不容易繼承(看懂)

c語言寫的程式結構清楚,容易移植,可**相對會長一些如果對**空間要求不高的話,就使用c語言吧!

這應該也是個趨勢吧。

個人意見,僅供參考!

6樓:項穎卿有衣

c語言為高階語言,容易理解、編寫,但c語言編寫的程式則需要經過彙編,然後再像彙編程式那樣轉換為機器語言才能執行;

組合語言是比機器語言高一級的電腦語言,可以直接經過一道工序就能轉換機器能夠識別的機器語言的程式執行。

7樓:沙裡波特

用組合語言程式設計,就像,你自己開車。

這輛車的各種操作方法,你必須得熟練掌握。

用 c 語言程式設計,就像,你坐計程車。

你只要會說人話,司機就能把你送到目的地。

組合語言和c語言有什麼區別?

8樓:匿名使用者

1:組合語言是面向具體cpu及其硬體結構的語言c語言可以做到硬體無關性

2:組合語言效率較高

c語言效率相對較低

3:組合語言是非結構語言,可讀性較弱

c語言是結構語言,可讀性較強

4:組合語言基本沒有可移植性

c言可移植性很強

5:組合語言沒有函式庫,所有**需要自己組織c語言有豐富的函式庫可供呼叫。

9樓:匿名使用者

一個是低階語言一個是高階語言

簡單來說,組合語言比高階語言(c,c++之類)更容易被計算機識別。

但他們都必須被編譯成為機器語言(01**)才能夠被計算機識別。

10樓:

簡單的說就是組合語言看起來比較難懂,更接近於機器語言,c語言屬於高階程式設計語言,有點人類所認知的語法,更容易接受。

再則組合語言因為沒有固定的框架,不像c,封裝起來,所以c感覺比較好學,同時彙編編起來沒有程式化的感覺。

c語言與組合語言有什麼區別與聯絡?

11樓:桑晨濰

c語言當然一種

彙編是對於各種微控制器特定的編寫語句,對於不同總類的也不同

c語言是一種通用語言,雖然不同總類的微控制器的組合語言不同,但他們大部分可以用c語言編寫,建議學好c語言

12樓:匿名使用者

組合語言是採用助記符號來編寫程式的,用輔助符號代替機器語言的二進位制碼,就把機器語言變成了組合語言。可以直接同計算機的底層軟體甚至硬體進行互動。

編寫的**非常難懂,不好維護,所以出現一些程序導向的語言,c就是其中之一。c是可以說是中級語言。它把高階語言的基本結構和語句與低階語言的實用性結合起來。

c 語言可以像組合語言一樣對位、位元組和地址進行操作。

飯客網路為你解答!!

組合語言與c語言的區別與聯絡是什麼?

13樓:天雲小店

1:組合語言是面向具體cpu及其硬體結構的語言c語言可以做到硬體無關性

2:組合語言效率較高

c語言效率相對較低

3:組合語言是非結構語言,可讀性較弱

c語言是結構語言,可讀性較強

4:組合語言基本沒有可移植性

c言可移植性很強

5:組合語言沒有函式庫,所有**需要自己組織c語言有豐富的函式庫可供呼叫。

c語言和組合語言的區別是什麼?

14樓:哇哎西西

區別如下:

1、效率不同

彙編效率高,c語言效率比較低。

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

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

3、**體積大小不同

彙編目標**體積小,c語言目標**體積大。

4、維護性不同

彙編不易維護,c語言容易維護。

5、可移植性不同

彙編可移植性很差,c語言可移植性很好。

15樓:哇哎西西

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

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

3、兩者用處不同。組合語言通常用在程式中最核心的、控制硬體的**,一方面是安全,另一方面提高執行速度。而c語言通常用在計算機外用功能上。

16樓:會飛的小兔子

1、操作複雜程度的不同

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

2、使用範圍的不同

c語言程式的事件將會只是編寫組合語言程式的幾分之一,從編寫程式的效率上來說c語言無疑更高,此外c語言是高階程式語言因此可移植性較好,不太受到到硬體裝置的限制。

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

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

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

17樓:雄鷹耀

c語言和組合語言的指令集、定址方式不同,相當於兩個機器各有各的操作方式。第一、

組合語言是低階語言,在編寫程式的時候會把根據不同的情況指定使用不同的定址方式,能夠對記憶體和cpu裡的通用暫存器直接操縱。不同的計算機系列會有不同的組合語言;而c語言是高階語言,可以實現跨平臺。編寫程式無需指定cpu的指令執**況,一段程式可以在不同體系結構的計算機上使用。

第二、c語言是一種比較高階的語言,作者可以直接命令計算機在不考慮硬體的情況下實現這種控制效果。組合語言是語言對硬體的直接控制,硬體間接實現了一定的控制效果。換句話說,組合語言更關注描述過程,而高階語言(比如c)更側重於描述結果。

第三、例如,組合語言中變數的賦值語句是mov a b,可以解釋為將暫存器中的值複製到b暫存器。在c語言中,b=a直接表示,這被解釋為使b=一個由柵極電路組成的晶片。有一個斷點,對應於計算機**中的二進位制1或0。

第四、如果您有一個直接的人機對話,您只能輸入包含0和1的**來進行通訊。這段**太長,很難記住。因此人們想出了一種相互協議的方式,人們可以很容易地閱讀特定的方式來表達特定的計算機**,然後翻譯成計算機可以直接讀取二進位制**的表示式。

這樣一組方便的表示式被稱為計算機語言。

18樓:匿名使用者

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

19樓:啦啦啦額

組合語言與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語言和c語言的區別是什麼C語言和C語言的區別是什麼?

c語言與c 的區別有很多 1,全新的程式程式思維,c語言是程序導向的,而c 是物件導向的。2,c語言有標準的函式庫,它們鬆散的,只是把功能相同的函式放在一個標頭檔案中 而c 對於大多數的函式都是有整合的很緊密,特別是c語言中沒有的c 中的api是對window系統的大多數api有機的組合,是一個集體...

組合語言中ptr的作用是什麼,組合語言中CMP的作用是什麼?

ptr應該就是pointer 說明地址指標型別。當兩個運算元型別均不明確時,必須用byte ptr 位元組屬性 或word ptr 字屬性 將一個儲存器運算元定義為位元組或字型別。如 mov byte ptr si oah 指明 si 為位元組型別 在沒有暫存器名存在的情況下,用操作符 x ptr ...

什麼是C語言和C語言C語言和C語言的區別是什麼?

1 c語言。c語言誕生得非常早,當時人們普遍還習慣用組合語言編寫軟體,並且沒有什麼統一,通用的作業系統,基本上軟體都是從0開始寫的。c語言的方針便是比彙編方便易用,一起不要損失彙編的表達能力。所以c語言可以看成是 高階的彙編 語言。c語言的源 基本上可以非常容易地對應到彙編 並且可以不需要什麼執行時...