彙編和C語言哪個好?

2021-09-24 21:51:45 字數 1116 閱讀 1919

組合語言和c語言哪個更好呢?哪個更適合作為微控制器程式語言呢?對於這個問題,微控制器初學者都會感到很疑惑。

現在普遍用c的比較多,因為c有很好的結構性與模組化,,c比彙編更容易閱讀與維護,而c功能化的**有更好的移植性,方便從乙個工程移植到另乙個工程,而且c更符合人們的思考習慣。既然你彙編與c都學過,那你一定知道彙編在程式設計時往往要考慮細節問題,長的程式如幾百行甚至上千行的**你在除錯時由於彙編的可讀性較差,會花費大量的時間來除錯。往往是乙個小細節問題會讓你搞半天,而結構化的c往往只需要考慮演算法而無需過多考慮細節問題,同時可讀性好,除錯時間也大大減少。特別是在編寫較大工程時,c用起來比較順。

每種微控制器基本有其自身一套機器語言,有些相差不大,有些相差比較大,所以你在使用不同微控制器時要先了解其組合語言,與微控制器的內部硬體結構,但c就不存在這個問題,只要了解微控制器的相應功能的暫存器,就可以程式設計。基於上述c的優點,現在市場c的需求多些。

我的意見是:兩種語言都應該能較熟的掌握。因為彙編的優點在於語句執行時序的精確性,執行效率高,對一些時鐘要求很高的系統,彙編比較容易實現。如果能做到c與彙編聯合程式設計。市場需求會更大。

對於微控制器開發,c語言又擴充了一部分資料型別:

sfr:特殊功能暫存器宣告;

sfr16:sfr的16位資料;

sbit:特殊功能位宣告;

bit:位變數宣告;

例:sfr scon = 0x98;(scon是序列口控制暫存器名稱,這裡只是舉個例子,大家不明白也沒關係)

sfr16 t2 = 0xcc;(以0x開頭的資料是十六進製制的數a代表10,b代表11,以下類推,直至f代表15,字母大小寫無所謂)

sbit ov = psw^2;

c語言開發微控制器時需要在開頭寫上有關標頭檔案,對於標頭檔案,學過c語言的同學都知道,相當於把一些函式或者變數已經宣告好,可以直接使用,經常使用的標頭檔案有:

通常有:reg51.h reg52.h math.h ctype.h stdio.h stdlib.h absacc.h intrins.h(這裡不要求全記住,只要用到reg.51或者reg.52即可)

常用有:reg51.h reg52.h

(定義特殊功能暫存器和位暫存器);

math.h (定義常用數**算);

更多交流學習可以私我q:28-988-294-68

Python和Ruby哪個好?

ruby 和 python十分相似,有很多共同點,但也有一些不同之外,以下是python和ruby的對比 1.python和ruby都是物件導向的語言,都是動態和靈活的。二者的主要區別在於他們解決問題的方式。ruby提供了不同的方法,而python通常只有乙個,這既是優勢也劣勢。2.最流行的ruby...

postgresql和mysql哪個好

postgresql和mysql都是免費且功能強大的開源資料庫,很多使用者面對這兩個庫都會有乙個問題,那就是哪乙個才是最好的開源資料庫,mysql還是postgresql呢?該選擇哪乙個開源資料庫呢?一.postgresql相對於mysql的優勢 1 在sql的標準實現上要比mysql完善,而且功能...

Git和SVN的區別,哪個好

1 最核心的區別git是分布式的,而svn不是分布的。能理解這點,上手會很容易,宣告一點git並不是目前唯一的分布式版本控制系統,還有比如mercurial等,所以說它們差不許多。話說回來git跟svn一樣有自己的集中式版本庫和server端,但git更傾向於分布式開發,因為每乙個開發人員的電腦上都...