|
匯編語(yǔ)言是一種用文字助記符來(lái)表示機(jī)器指令的符號(hào)語(yǔ)言,是最接近機(jī)器碼的一種語(yǔ)言。其主要優(yōu)點(diǎn)是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語(yǔ)言可能有所差異,所以不易移植。
C語(yǔ)言是一種結(jié)構(gòu)化的高級(jí)語(yǔ)言。其優(yōu)點(diǎn)是可讀性好,移植容易,是普遍使用的一種計(jì)算機(jī)語(yǔ)言。缺點(diǎn)是占用資源較多,執(zhí)行效率沒(méi)有匯編高。
匯編語(yǔ)言是低級(jí)語(yǔ)言,在編寫(xiě)程序的時(shí)候會(huì)把根據(jù)不同的情況指定使用不同的尋址方式,能夠?qū)?nèi)存和CPU里的通用寄存器直接操縱。不同的單片機(jī)系列會(huì)有不同的匯編語(yǔ)言
而C語(yǔ)言是高級(jí)語(yǔ)言,可以實(shí)現(xiàn)跨平臺(tái)。編寫(xiě)程序無(wú)需指定CPU的指令執(zhí)行情況,一段程序可以在不同體系結(jié)構(gòu)的計(jì)算機(jī)上使用
c語(yǔ)言在編譯的時(shí)候會(huì)進(jìn)行匯編,轉(zhuǎn)換為機(jī)器指令,才可以運(yùn)行
準(zhǔn)確的說(shuō),應(yīng)該是不同指令集的CPU需要編譯成不同的機(jī)器語(yǔ)言。
目前PC機(jī)的CPU的指令集都是一樣的,所以,你在你的PC上編譯了一份可執(zhí)行文件,復(fù)制到你師兄的PC里面,也可以用,但是復(fù)制到平板電腦里,就無(wú)法使用了。
就如英語(yǔ)和漢語(yǔ)的區(qū)別,你的母語(yǔ)是漢語(yǔ),就如單片機(jī)的母語(yǔ)是匯編語(yǔ)言。英語(yǔ)和C語(yǔ)言就是一種表達(dá)語(yǔ)言
C語(yǔ)言是當(dāng)今最流行的程序設(shè)計(jì)語(yǔ)言之一,它的功能豐富、表達(dá)力強(qiáng)、使用靈活方便、應(yīng)用面廣、目標(biāo)程序高、可植入性好,既有高級(jí)語(yǔ)言的特點(diǎn),又有低級(jí)語(yǔ)言的許多特點(diǎn),適合作為系統(tǒng)描述語(yǔ)言,既可以用來(lái)編寫(xiě)系統(tǒng)軟件,也可以用來(lái)編寫(xiě)應(yīng)用軟件。
匯編的低級(jí)別語(yǔ)言,優(yōu)點(diǎn)在于能夠?qū)τ布Y源進(jìn)行準(zhǔn)確的操作,比如寄存器的使用和數(shù)據(jù)存儲(chǔ)的具體位置。能充分運(yùn)用硬件資源
缺點(diǎn)當(dāng)然是編寫(xiě)起來(lái)麻煩,程序閱讀麻煩
而c則相反,它都是編譯器自動(dòng)分配說(shuō)需寄存器和數(shù)據(jù)存儲(chǔ)單元,因此編寫(xiě)者不能分配
但c語(yǔ)法簡(jiǎn)單,程序可讀性強(qiáng)
匯編語(yǔ)言屬低級(jí)語(yǔ)言,而C語(yǔ)言是高級(jí)語(yǔ)言,所謂高級(jí)語(yǔ)言就是更容易被人們理解的語(yǔ)言,其實(shí)匯編語(yǔ)言能實(shí)現(xiàn)的功能往往也能通過(guò)C語(yǔ)言來(lái)實(shí)現(xiàn),甚至用C語(yǔ)言會(huì)更簡(jiǎn)單,但是匯編語(yǔ)言有一個(gè)優(yōu)勢(shì)是其他任何語(yǔ)言所不具備的,這也是為什么匯編語(yǔ)言一直能在編程中占有一席之地,那就是匯編語(yǔ)言對(duì)硬件的直接控制,也就是說(shuō)他能直接對(duì)硬件操作,可以繞過(guò)操作系統(tǒng)等等之類(lèi)。雖然有的領(lǐng)域其他編程也能實(shí)現(xiàn),但是在很多地方往往是匯編語(yǔ)言能更加簡(jiǎn)單,更加完美的完成。而且學(xué)好了匯編語(yǔ)言你就能對(duì)cpu是怎么工作的有了清晰的認(rèn)識(shí),所以學(xué)計(jì)算機(jī)專(zhuān)業(yè)的一般都會(huì)學(xué)匯編語(yǔ)言。
匯編語(yǔ)言是采用助記符號(hào)來(lái)編寫(xiě)程序的,用輔助符號(hào)代替機(jī)器語(yǔ)言的二進(jìn)制碼,就把機(jī)器語(yǔ)言變成了匯編語(yǔ)言?梢灾苯油(jì)算機(jī)的底層軟件甚至硬件進(jìn)行交互。
編寫(xiě)的代碼非常難懂,不好維護(hù),所以出現(xiàn)一些面向過(guò)程的語(yǔ)言,C就是其中之一。C是可以說(shuō)是中級(jí)語(yǔ)言。它把高級(jí)語(yǔ)言的基本結(jié)構(gòu)和語(yǔ)句與低級(jí)語(yǔ)言的實(shí)用性結(jié)合起來(lái)。C 語(yǔ)言可以像匯編語(yǔ)言一樣對(duì)位、字節(jié)和地址進(jìn)行操作。
匯編語(yǔ)言是用語(yǔ)言直接控制硬件,由硬件間接達(dá)到某種控制效果。而C語(yǔ)言是一種比較高級(jí)的語(yǔ)言,編寫(xiě)者可以不用去考慮硬件而直接去命令計(jì)算機(jī)達(dá)到這種控制效果。換而言之,匯編語(yǔ)言對(duì)描述過(guò)程更注重,C語(yǔ)言之類(lèi)的高級(jí)語(yǔ)言更注重描述結(jié)果。例如匯編語(yǔ)言中變量的賦值語(yǔ)句為 MOV A B 可以解釋為將A寄存器中的值復(fù)制至B寄存器。而C語(yǔ)言中直接表示為 b=a,解釋為使b=a 芯片都是由門(mén)電路構(gòu)成。門(mén)有通有斷,對(duì)應(yīng)在計(jì)算機(jī)代碼里是二進(jìn)制的1或0。如果直接進(jìn)行人機(jī)對(duì)話(huà),只能輸入由0和1組成的代碼才能交流。這樣的代碼太長(zhǎng),而且難記。所以人們想出一個(gè)辦法,相互約定,用人們易讀懂的特定表達(dá)方式去表達(dá)特定的計(jì)算機(jī)代碼,再將此表達(dá)方式翻譯成計(jì)算機(jī)能直接讀懂的二進(jìn)制代碼。這樣的一套方便人們表達(dá)的表達(dá)方式被稱(chēng)為計(jì)算機(jī)語(yǔ)言。
學(xué)習(xí)匯編可以更好地理解單片機(jī)的硬件原理,工作方式。
你還在學(xué)習(xí) 必然要從最底層學(xué)起 而且要盡量學(xué)好
越高級(jí)的語(yǔ)言實(shí)用越方便 開(kāi)發(fā)效率更高 執(zhí)行效率更低 但靠硬件速度 效果 功能等可以彌補(bǔ) 主要做較大項(xiàng)目時(shí)如果全用底層語(yǔ)言實(shí)在太累了
不管什么語(yǔ)言都是個(gè)工具 寫(xiě)程序真正重要的是你的思路 你的邏輯 你的想法 你要去哪才是目標(biāo) 至于開(kāi)手動(dòng)檔車(chē)去還是開(kāi)自動(dòng)檔車(chē)去 那只是手段
|
|