c語言和組合語言的區別

2021-09-29 12:28:03 字數 1332 閱讀 4417

什麼是c語言:

c語言是一門通用

計算機程式語言,應用廣泛。c語言的設計目標是提供一種能以簡易的方式

編譯、處理低階

儲存器、產生少量的

機器碼以及不需要任何執行環境支援便能執行的程式語言;儘管c語言提供了許多低階處理的功能,但仍然保持著良好跨平台的特性,以乙個標準規格寫出的c語言程式可在許多電腦平台上進行編譯,甚至包含一些嵌入式

處理器(微控制器或稱

mcu)以及超級電腦等作業平台。

什麼是組合語言:

組合語言(assembly language)是一種用於

電子計算機、

微處理器、

微控制器或其他可程式設計器件的低階語言,亦稱為符號語言。在組合語言中,用

助記符(mnemonics)代替

機器指令的

操作碼,用位址符號(symbol)或標號(label)代替指令或

運算元的位址。在不同的裝置中,組合語言對應著不同的機器語言

指令集,通過彙編過程轉換成機器指令。普遍地說,特定的組合語言和特定的機器語言指令集是一一對應的,不同平台之間不可直接移植。

[1]許多匯程式設計序為程式開發、

彙編控制、輔助除錯提供了額外的支援機制。有的組合語言程式設計工具經常會提供巨集,它們也被稱為巨集彙編器。

組合語言不像其他大多數的

程式語言一樣被廣泛用於程式設計。在今天的實際應用中,它通常被應用在底層,硬體操作和高要求的程式優化的場合。驅動程式、嵌入式作業系統和實時執行程式都需要組合語言。

c語言和組合語言的優缺點:以c來舉例

優點:1.c的執行效率高;

2.c可以實現硬體的直接訪問;

3.c**的移植性好;

缺點:1.c的**復用性差;

2.c的**維護性差;

3.c的擴充套件性差,即如果想增加新功能,需要修改較多的**;

4.c語言的可讀性差;

至於組合語言的優缺點基本和c的優缺點相反;

c和彙編的選擇:

1.若只有較簡單的邏輯操作、邏輯演算法、簡單運算,使用彙編會得到較為精準的**,但用c也同樣可以做到。

2.若摻有複雜運算、浮點運算、非線性方程等,彙編恐怕無能為力了(最起碼難度很大)。

3.微控制器種類繁多,各自的彙編語法大都不一樣,若僅使用彙編,可擴充性、可移植性都很差,用c就會好的多。

簡單地說,很小的程式,主要是硬體簡單控制的可以用彙編,

稍微複雜一點尤其是牽涉到一些計算或者管理等方面的最好用c 。

而現在隨著技術的發展,面向程式設計師的高階語言比面向cpu的組合語言好用得,在硬體條件允許的情況下,程式設計師當然選擇用高階語言程式設計,不旦提高了程式設計效率,也提高了**的可維護性,並且十分有利於編寫大型的工程。

c

C學習筆記(一) C語言和組合語言的區別

c學習筆記 五 c語言和組合語言的區別 c語言和組合語言的區別 彙編 效率高,對硬體的可操控性更強,體積小,不易維護,可移植性很差 c 效率比較低,硬體可操控性比較差,目標 體積大,容易維護,可移植性很好 1.組合語言實質上是機器語言的助記符。cpu只能執行它所支援的指令集,而這些指令集當中的每條指...

高階組合語言和低階組合語言的差別

80 86不支援像 if while repeat for break breakif try 這樣的機器指令。hla只要一遇到這些語句,就把他們編譯成乙個或多個真正的機器的指令 本書的目的 the art of assembly language 在於傳授你低階組合語言,談論第一章的高階結構只是實...

C語言和ARM組合語言的相互呼叫

1.匯程式設計序訪問c語言全域性變數 全域性變數只能通過位址間接呼叫,為了訪問c語言中全域性變數,首先要通過extern偽指令引入全域性變數,然後將其位址裝入暫存器中。對於unsigned char型別,使用ldrb strb訪問 對於unsigned short型別,使用ldrh strh訪問 對...