找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 229266|回復(fù): 1142
打印 上一主題 下一主題
收起左側(cè)

學(xué)習(xí)單片機用匯編還是C比較好

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:425850 發(fā)表于 2018-11-13 22:13 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式

單選投票, 共有 1911 人參與投票
86.81% (1659)
3.92% (75)
9.26% (177)
您所在的用戶組沒有投票權(quán)限
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏2 分享淘帖 頂8 踩
回復(fù)

使用道具 舉報

來自 2#
ID:383215 發(fā)表于 2018-11-19 12:32 | 只看該作者
這個話題按好壞之分討論下去毫無意義,匯編語言和C語言不存在好壞之分,而是各有優(yōu)點。匯編語言是基礎(chǔ),沒有匯編語言的基礎(chǔ),C語言肯定編不好,匯編語言是走路,C語言就是跑步,路都走不好的人,跑步也跑不了多遠。C語言編程效率高,但是,產(chǎn)生的代碼比匯編語言長10%以上,匯編語言產(chǎn)生的代碼比較短,但是,編程效率太低,對于程序代碼沒有要求的單片機電路,肯定選擇C語言。假如一個量產(chǎn)100萬件的電路,單片機程序是2K,結(jié)果是C語言的代碼超過2K,換一種單片機哪怕增加一毛錢,就增加了10萬,用匯編語言代碼可以控制在2K以內(nèi),為了這10萬元,你肯定愿意選擇匯編語言。C語言能編成功的程序,匯編語言一定可以做到,而且代碼更短,用編程成功的C語言,改為匯編語言,難度也不算太大。匯編語言可以編寫出最緊湊的程序代碼,讓單片機的運行速度達到最大化,這一點,C語言根本做不到,C語言的高效率編程也是匯編語言無法做到的,但是,C語言編程的代價就是增加了程序代碼,在一定程度上拖慢了單片機的運行速度。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 3#
ID:429287 發(fā)表于 2018-11-19 16:27 | 只看該作者
C語言實際上已經(jīng)成為了中級語言的事實上的標(biāo)準,如果你從事嵌入式開發(fā)、芯片設(shè)計等,C語言是必須懂的基礎(chǔ);在高級語言上,C語言的簡練和精確也具備特殊的優(yōu)勢;VC的強大在Windows平臺上其它語言更是難與之相匹敵,在Unix/Linux平臺上,C語言也是最終要的語言,Linux的內(nèi)核也主要是以C語言寫的。

當(dāng)然C語言也有缺點:就是難,容易出錯,因為它的數(shù)據(jù)類型需要精確,而導(dǎo)致不夠深入理解的程序員常容易犯錯。

一句話:專業(yè)的編程,一定要學(xué)C語言;業(yè)余水平的,可以直接從VB等入手。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 4#
ID:431465 發(fā)表于 2018-11-22 21:22 | 只看該作者
開發(fā)當(dāng)然是用C,又快又易懂好維護,但是想要優(yōu)化程序還是要懂匯編的,要不然實現(xiàn)同樣一個功能的程序,好的程序員可以把程序設(shè)計得又短又快,而不做優(yōu)化的可能會又臭又長,2K以下可以搞定的,你非要搞到4K以上去那最終產(chǎn)品的成本每個至少會相差幾毛到一兩塊錢,而且成本升高時質(zhì)量卻是下降的,這樣當(dāng)然就不好了,所以我個人認為做單片機編程,應(yīng)當(dāng)是匯編和C都會才是最好的,次一點的是會C,且能大致看懂匯編,可以幫助優(yōu)化C程序, 只會匯編,一個程序開發(fā)下來,得花幾周到幾個月,開發(fā)成本太高了,不值得 只會C完全不懂匯編,那也是很難做出高質(zhì)量的單片機程序的

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 5#
ID:434326 發(fā)表于 2018-11-27 16:51 來自手機 | 只看該作者
匯編語言屬低級語言,而C語言是高級語言,所謂高級語言就是更容易被人們理解的語言,其實匯編語言能實現(xiàn)的功能往往也能通過C語言來實現(xiàn),甚至用C語言會更簡單,但是匯編語言有一個優(yōu)勢是其他任何語言所不具備的,這也是為什么匯編語言一直能在編程中占有一席之地,那就是匯編語言對硬件的直接控制,也就是說他能直接對硬件操作,可以繞過操作系統(tǒng)等等之類。雖然有的領(lǐng)域其他編程也能實現(xiàn),但是在很多地方往往是匯編語言能更加簡單,更加完美的完成。而且學(xué)好了匯編語言你就能對cpu是怎么工作的有了清晰的認識,所以學(xué)計算機專業(yè)的一般都會學(xué)匯編語言。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 6#
ID:431225 發(fā)表于 2018-11-28 11:03 | 只看該作者
客觀的說,匯編更適合單片機,編寫的程序相對c語言來說會更加的簡潔,運行的速度也會更快,你的程序如果寫的很長,相對于c語言來說外人就不是那么好給你修改了,匯編語言每個人的思維以及寫的方式都不盡相同,c語言更符合人類的邏輯習(xí)慣,初學(xué)匯編可能會很難,但是當(dāng)你入門之后你會感覺寫程序很輕松。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 7#
ID:430861 發(fā)表于 2018-12-8 16:53 | 只看該作者
這沒法比較,一般來講程序較小,實時性要求較高的情況下當(dāng)然是匯編,程序較大、比較復(fù)雜尤其是有比較多工程計算的肯定是C了,像石英鐘、秒表這樣的,匯編非常適合。用匯編語言還有一個好處就是樂趣性比較大,你可以100%控制所有資源,目標(biāo)代碼的長度你在匯編之前就可以確定,C語言的話畢竟中間隔了個編譯器。你要喜歡玩硬件的話,匯編語言不可替代。而且同一個工程你也不必要做2選一的選擇,部分代碼可以由匯編語言生成,諸如由定時器產(chǎn)生的中斷程序就非常適合用匯編語言寫,而復(fù)雜的部分可由C語言來寫。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 8#
ID:670373 發(fā)表于 2019-12-24 00:04 | 只看該作者
它們是可以相互依托的,比如要求開發(fā)速度,我們可以盡量用c或c++,因為它們都比用匯編完成任務(wù)速度要快。比如要求執(zhí)行速度,我們必須考慮使用匯編,因為匯編的速度大體要比c或c++快5%~15%,另外我們還可以考慮用c或c++來嵌套匯編完成。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 9#
ID:671287 發(fā)表于 2019-12-25 21:42 來自手機 | 只看該作者
單片機編程用C語言或匯編語言都可以,但是我建議用C語言比較好,模塊化管理編程方便,移植性強,適合編寫大程序。如果原來有C語言的基礎(chǔ)那學(xué)起來會更好,如果沒有,也可以邊學(xué)單片機邊學(xué)C語言。雖然很多人是從匯編語言開始接觸單片機的,但是寫小程序匯編語言還是簡單的,如果要實現(xiàn)一些算法,那匯編語言就不簡單了。

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

來自 10#
ID:887202 發(fā)表于 2021-8-6 16:11 | 只看該作者
建議學(xué)習(xí)C吧,匯編確實由他的優(yōu)勢,快速,內(nèi)存利用率高,執(zhí)行效率高,但是隨著單片機這個行業(yè)的發(fā)展,單片機的功能越來越強大,實現(xiàn)的功能越來越復(fù)雜,不可能都去用匯編寫代碼,開發(fā)效率上面太低下了,除了一些低端的8位單片機可能還會用匯編意外,高端的單片機的開發(fā)基本的模式會變成官方提供一個SDK給你,你調(diào)用寫好接口就可以實現(xiàn)功能,不用具體去查看寄存器這些東西。看看STM32 為什么這么多人用,除了本身功能強大意外,官方的各種支持各種庫讓開發(fā)門檻大大降低,開發(fā)周期大大縮短,現(xiàn)在的32位單片機缺那么一點存儲空間?時鐘基本都是32M起步,缺那一點執(zhí)行的時間?正式這些原因STM32才能大量的占領(lǐng)市場,擁有大量的開發(fā)人員,同樣一個功能,用官方SDK一個星期就能開發(fā)完,匯編都不知道寫到什么時候去了,C語言才是更好的選擇

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

11#
ID:155507 發(fā)表于 2018-11-14 06:25 | 只看該作者
我也是喜歡用匯編。但是也要會C語言,最起碼要能讀的懂。
匯編語言的優(yōu)勢在于程序簡潔,占用內(nèi)存少,效率高。比較直觀。
可以說,除非單片機(不僅僅是單片機)沒有該功能,否則沒有匯編做不到的。c語言就不一定。
其實熟練的掌握匯編后,學(xué)C語言,不用花多大功夫。
回復(fù)

使用道具 舉報

12#
ID:111634 發(fā)表于 2018-11-14 08:09 | 只看該作者
總體是用c好。
回復(fù)

使用道具 舉報

13#
ID:387733 發(fā)表于 2018-11-14 08:11 | 只看該作者
學(xué)習(xí)單片機,看你的側(cè)重面,要想快,且偏重于編程,那就從C開始學(xué)。如果想學(xué)得深,軟硬件兼顧,那就應(yīng)該從匯編開始。雖然匯編不便于移植,但是匯編更精煉,更貼近硬件。學(xué)了匯編再學(xué)C,才能更好地揚長避短,設(shè)計出好的系統(tǒng)。
回復(fù)

使用道具 舉報

14#
ID:426147 發(fā)表于 2018-11-14 08:50 | 只看該作者
匯編雖然邏輯簡單,但是沒有C語言簡練,初學(xué)簡單的可以用匯編,但是編寫一些復(fù)雜一點的還是用C比較方便
回復(fù)

使用道具 舉報

15#
ID:223470 發(fā)表于 2018-11-14 09:44 | 只看該作者
可以使用C語言入門,匯編語言比較底層,可以在熟悉一定的寄存器后再使用匯編。
回復(fù)

使用道具 舉報

16#
ID:397054 發(fā)表于 2018-11-14 10:15 | 只看該作者
這沒法比較,一般來講程序較小,實時性要求較高的情況下當(dāng)然是匯編,程序較大、比較復(fù)雜尤其是有比較多工程計算的肯定是C了,像石英鐘、秒表這樣的,匯編非常適合。用匯編語言還有一個好處就是樂趣性比較大,你可以100%控制所有資源,目標(biāo)代碼的長度你在匯編之前就可以確定,C語言的話畢竟中間隔了個編譯器。你要喜歡玩硬件的話,匯編語言不可替代。而且同一個工程你也不必要做2選一的選擇,部分代碼可以由匯編語言生成,諸如由定時器產(chǎn)生的中斷程序就非常適合用匯編語言寫,而復(fù)雜的部分可由C語言來寫。
回復(fù)

使用道具 舉報

17#
ID:426221 發(fā)表于 2018-11-14 10:38 | 只看該作者
C吧,C語言通用性好一些
回復(fù)

使用道具 舉報

18#
ID:234560 發(fā)表于 2018-11-14 11:07 | 只看該作者
百分之九十九點九九的事情都可以用C搞定,除非有特殊需求否則真用不到匯編,但懂匯編還是很重要的。
回復(fù)

使用道具 舉報

19#
ID:426249 發(fā)表于 2018-11-14 11:18 | 只看該作者
都可以
回復(fù)

使用道具 舉報

20#
ID:426285 發(fā)表于 2018-11-14 12:30 | 只看該作者
C語言通用性好一些
回復(fù)

使用道具 舉報

21#
ID:334261 發(fā)表于 2018-11-14 12:54 | 只看該作者
匯編針對原理進行編程,C語言更加直觀,可以匯編為輔,C語言為主,入門會比較快
回復(fù)

使用道具 舉報

22#
ID:426303 發(fā)表于 2018-11-14 13:23 來自手機 | 只看該作者
我覺得還是C語言比較好用,匯編語言相比C語言來說更為復(fù)雜,C語言相對來說比較靈活,使用方便
回復(fù)

使用道具 舉報

23#
ID:426320 發(fā)表于 2018-11-14 13:34 來自手機 | 只看該作者
c好用點吧,畢竟基礎(chǔ)語言
回復(fù)

使用道具 舉報

24#
ID:426330 發(fā)表于 2018-11-14 13:57 | 只看該作者
C更好點
回復(fù)

使用道具 舉報

25#
ID:401564 發(fā)表于 2018-11-14 14:10 | 只看該作者
沒有說哪個好不好的,針對的東西不一樣,很多時候是沒有什么可比性,用C的話意思就是說:我不需要用到匯編的那些個優(yōu)點,反過來也是一樣的,用匯編的話:我不需要C的那些優(yōu)點.
很重要的一點:C語言你是一定要會的,畢竟,面試的時候這一關(guān)是肯定要過的.
至于你學(xué)單片機要用什么語言去學(xué),選擇沒有那么難的:用匯編入門,然后再學(xué)C語言.
再說點別的吧:在小代工廠里面一般,用匯編的比較多,主要是穩(wěn)定性和成本問題,在方案公司里就不同了,主要是用C,做方案快,你走人了,下一個接手也容易.
就工資而言,如果你不進入嵌入式領(lǐng)域,純匯編的工資是要比純用C的工資高的,因為,工業(yè)級的東西,老板是不會在乎你用什么語言來寫的,他只管看成本,能用9毛9的單片機,他肯定不會用1塊的,特別是小家電這一塊,用的大多是臺系的8位單片機,穩(wěn)定性不好,資源有限,C根本寫不下,有的型號的單片機程序空間竟然是用B來做單位的.
如果你要進入嵌入式領(lǐng)域,卻還在相關(guān)匯編,那就是你OUT了,除非是要精確到一個時鐘的時間精度,匯編是沒有什么用處的,一個16位數(shù)除法,你只能用減去去進行,更不用說什么算法之類的的了.
匯編優(yōu)點在于時間精度和代碼空間,C優(yōu)點在于功能強大,沒什么好比的.想學(xué)什么就學(xué)什么,或者是自己覺得學(xué)什么容易就學(xué)什么,已經(jīng)開始學(xué)C了就不要學(xué)匯編了,我就是用匯編的,雖然代碼的空間上是比C占用得少,但代碼量多呀!一個小程序,完整的寫下來,動不動就是上千行代碼,一個指令寫錯了,能讓你找一個星期......

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

26#
ID:426359 發(fā)表于 2018-11-14 14:33 | 只看該作者
我個人覺得還是c語言好
回復(fù)

使用道具 舉報

27#
ID:426386 發(fā)表于 2018-11-14 15:00 | 只看該作者
建議用C語言編程,C語言代碼可移植性比匯編好太多,而且適用于單片機的RTOS基本都是C語言編寫成的。另外一個,匯編寫代碼需要考慮的細節(jié)太多,不利于我們快速編寫符合要求的應(yīng)用程序。

評分

參與人數(shù) 1黑幣 +40 收起 理由
admin + 40 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

28#
ID:426416 發(fā)表于 2018-11-14 15:32 | 只看該作者
2K以下的代碼可以用匯編。。。。。。
匯編看的頭疼,反正我是沒用過的。
新手小白可在某寶上搜索 51單片機開發(fā) 遠程服務(wù)
回復(fù)

使用道具 舉報

29#
ID:338181 發(fā)表于 2018-11-14 15:38 | 只看該作者
c語言是最基本的阿東西,接觸的東西也更多,可以讓你對系統(tǒng)有更好的了解。
回復(fù)

使用道具 舉報

30#
ID:426063 發(fā)表于 2018-11-14 15:43 | 只看該作者
匯編比較基礎(chǔ),可以幫助你更好地從底層了解單片機,如果剛開始,還是建議用C,單片機硬件可以看書,軟件高級語言方便閱讀。加油
回復(fù)

使用道具 舉報

31#
ID:426432 發(fā)表于 2018-11-14 15:44 | 只看該作者
都是可以的,匯編總的來說比C難,C才是主流
回復(fù)

使用道具 舉報

32#
ID:426432 發(fā)表于 2018-11-14 15:45 | 只看該作者
都可以的,但是C是主流,匯編比較底層,也比較不好移植
回復(fù)

使用道具 舉報

33#
ID:425915 發(fā)表于 2018-11-14 15:49 | 只看該作者
大部分還是C語言
回復(fù)

使用道具 舉報

34#
ID:426444 發(fā)表于 2018-11-14 15:56 來自手機 | 只看該作者
c語言,個人感覺c語言方便
回復(fù)

使用道具 舉報

35#
ID:425384 發(fā)表于 2018-11-14 16:39 | 只看該作者
C語言比較好理解,運用了很多函數(shù),如果有C語言的基礎(chǔ)的話,用C還是很好學(xué)的,要想快,且偏重于編程,那就從C開始學(xué)。匯編語言要記得指令很多,差不多有100多條指令,用匯編的話一開始要下很大功夫,但是一旦熟練地學(xué)會了,那就可以達到軟硬件兼顧。雖然匯編不便于移植,復(fù)雜的程序難編寫,但是匯編更精煉,更貼近硬件,能深入到機器層面來理解問題。
回復(fù)

使用道具 舉報

36#
ID:426485 發(fā)表于 2018-11-14 17:00 | 只看該作者
就我目前學(xué)習(xí)情況看,我覺得C語言優(yōu)勢比匯編大很多。C語言比匯編更簡單易懂,編寫方便;目前大部分的單片機都支持C語言編程
回復(fù)

使用道具 舉報

37#
ID:426549 發(fā)表于 2018-11-14 17:50 | 只看該作者
個人覺得匯編相對難一點,需要記得東西太多,還是C比較好用些。
回復(fù)

使用道具 舉報

38#
ID:401804 發(fā)表于 2018-11-14 18:51 | 只看該作者
先學(xué)習(xí)C語言哦,C語言更簡單,并且現(xiàn)在的單片機程序基本上都用C語言寫更加簡單哦,匯編學(xué)起來較難點,雖然學(xué)會了匯編可以更好的了解程序的運行過程,用匯編編寫代碼量非常大也要求思路很清楚,對于新手來說最好就用C哦,比如叫你寫了延時函數(shù),用C很簡單,幾句話就可以,但匯編的話 你首先得知道有哪些寄存器,代碼也比較多
回復(fù)

使用道具 舉報

39#
ID:426296 發(fā)表于 2018-11-14 18:56 | 只看該作者
C語言通用性好一些
回復(fù)

使用道具 舉報

40#
ID:426600 發(fā)表于 2018-11-14 19:20 | 只看該作者
初學(xué)一定要學(xué)c語言
回復(fù)

使用道具 舉報

41#
ID:426633 發(fā)表于 2018-11-14 20:12 | 只看該作者
我是從c入門的,都沒學(xué)過匯編,至少我覺得c還不錯吧
回復(fù)

使用道具 舉報

42#
ID:426659 發(fā)表于 2018-11-14 20:45 | 只看該作者
匯編不適合計算機新手,現(xiàn)在大學(xué)里基本上從c開始,等你掌握C語言,后期用匯編語言,可以加快指令執(zhí)行速度
回復(fù)

使用道具 舉報

43#
ID:426661 發(fā)表于 2018-11-14 20:50 | 只看該作者
用C更好一點
回復(fù)

使用道具 舉報

44#
ID:421466 發(fā)表于 2018-11-14 21:28 | 只看該作者
c語言是基礎(chǔ),只有熟練使用后,再往匯編上去發(fā)展可能會容易一些,個人看法,如果有不同意見 請指教 。
回復(fù)

使用道具 舉報

45#
ID:426728 發(fā)表于 2018-11-14 22:09 | 只看該作者
C比較常用吧
回復(fù)

使用道具 舉報

46#
ID:426750 發(fā)表于 2018-11-14 22:43 | 只看該作者
匯編感覺自學(xué)很難,新手C上手快
回復(fù)

使用道具 舉報

47#
ID:426763 發(fā)表于 2018-11-14 22:53 | 只看該作者
。c語言就不一定。 其實熟練的掌握匯編后,學(xué)C語言,不用花多大功夫。
回復(fù)

使用道具 舉報

48#
ID:426765 發(fā)表于 2018-11-14 23:18 | 只看該作者
c語言,通用,可移植度高,不同單片機稍改程序就可以使用。
回復(fù)

使用道具 舉報

49#
ID:394101 發(fā)表于 2018-11-15 08:54 | 只看該作者
建議是學(xué)C好,匯編應(yīng)用不廣,而且學(xué)C以后轉(zhuǎn)其他語言也好轉(zhuǎn)
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表