久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

C語言與匯編,學(xué)什么?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:123289 發(fā)表于 2017-2-28 12:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
C與匯編:

C:經(jīng)編譯后,成匯編。
匯編:是自己“完成”了C的工作。

C:是從通用化出發(fā)的,考慮了單片機(jī)的特點(diǎn),極大地減少了人為的錯(cuò)誤與不合理。
匯編:因人為異,有許多技巧是C無法做到的,所以匯編更靈活,不過這建立在精通的基礎(chǔ)上。匯編稍有不小心就會(huì)出錯(cuò),要命的是:不易察覺。

C:由于通用,C只能按部就班,因此程序長(zhǎng),重復(fù)多,運(yùn)行時(shí)間多。
匯編:因靈活程序方式,可以節(jié)省內(nèi)存,節(jié)省運(yùn)行時(shí)間。
通常,匯編程序會(huì)比C少用內(nèi)存及時(shí)間在30%以上。但大多數(shù)情況下,內(nèi)存現(xiàn)在不是問題了,時(shí)間也不會(huì)太緊。所以節(jié)省內(nèi)存與時(shí)間的意義不大,但也有特例。

說明一下:
C是用堆棧傳遞參數(shù)的,但每次參數(shù)要彈出壓入,所以傳遞時(shí)有多花一點(diǎn)時(shí)間。匯編傳遞參數(shù)直接到達(dá)目標(biāo),快多了。
C一個(gè)子程序一個(gè)包。而匯編的一個(gè)子程序可以切入跳轉(zhuǎn)另一個(gè)子程序中,以節(jié)省內(nèi)存。

特別的一個(gè)實(shí)例:時(shí)間內(nèi)存要求高的項(xiàng)目(前提:用51單片機(jī)):
16*64的LED點(diǎn)陣顯示 + 14個(gè)LED數(shù)碼管顯示 + 中文漢字顯示處理 + 無線收發(fā) + 生產(chǎn)記錄(計(jì)劃、產(chǎn)能、次品、待產(chǎn))+ 年月日精確時(shí)間(普通晶振,日差小于一秒)。
單就解決顯示的掃描閃動(dòng)(驅(qū)動(dòng)顯示1136個(gè)LED段,不得不分8次掃描,1136個(gè)點(diǎn)時(shí)刻會(huì)變,要占的內(nèi)存多,顯示處理時(shí)間多),程序運(yùn)行需要時(shí)間(漢字解碼+無線通訊+時(shí)鐘+掃鍵……)。
解決掃描顯示的閃眼與程序任務(wù)多,在時(shí)間上的矛盾尤其特出,必須精心策化。這時(shí)用C來策化就捉襟見肘了,因?yàn)镃本來就耗時(shí)。

C的優(yōu)勢(shì):
1、用匯編需用很強(qiáng)的優(yōu)化寄存器及內(nèi)存的能力,用C的好處是,不需要你去考慮這些復(fù)雜的問題,使得編程簡(jiǎn)單。
2、 C出錯(cuò)的機(jī)率遠(yuǎn)小于匯編,匯編稍有不小心就會(huì)出錯(cuò),要命的是:不易察覺。
3、 C有團(tuán)體合作的優(yōu)勢(shì), 這是 C的特點(diǎn),便于交流。如果是匯編,很難與他人交流。
4、 對(duì)于運(yùn)算程序, C已有前輩們做好了運(yùn)算庫(kù),很難想像一般人能用匯編去:開方、三角函數(shù)(當(dāng)然,也可以讓C先編譯,再做成匯編的庫(kù))。
5、 C 有龐大的公用程序庫(kù)(子程序),這對(duì)于程序量大的程序更有優(yōu)勢(shì)。匯編的程序庫(kù)多為個(gè)人積累,很難得到。

其實(shí)C只有一個(gè)優(yōu)點(diǎn)!看一下單片機(jī)程序結(jié)構(gòu)就明白了:
單片機(jī)程序通常結(jié)構(gòu):1硬件初始化、2軟件參數(shù)初始化(含內(nèi)存安排)、3主程序(事件處理)、4中斷程序。
匯編:以上一切由你處理,除非你已獲得了很多相關(guān)的匯編數(shù)據(jù)庫(kù)。
C:在你未寫程序之前已為你做了什么?
1、硬件初始化,C僅能做很少的部分。(注:這就是為什么在做硬件時(shí)你總是要一行行慢慢寫的原因,與匯編比幾乎沒有優(yōu)勢(shì))
2、軟件參數(shù)初始化(含內(nèi)存安排),C完成其中的大部分,你定義一下就OK了,不用就煩放在哪里,也不會(huì)錯(cuò),錯(cuò)了報(bào)警重來。(注:比匯編操心少啊)
3、主程序(事件處理),C有大量的庫(kù)函數(shù)可以調(diào)用,可以減少你大部分工作量。(注:比匯編操心少啊)
4、中斷程序。調(diào)用庫(kù)的機(jī)會(huì)不多(注:本人不建議在中斷中完成事件處理,而建議盡最大可能只在中斷中做一些事件標(biāo)志!而讓事件在主程序中依標(biāo)志進(jìn)行處理,因?yàn)橹袛嘤袃?yōu)先權(quán),處理事件往往需要的時(shí)間多,會(huì)耽誤其它事件的處理,如這時(shí)按鍵就會(huì)偽“失靈”)。

可見 C的這個(gè)優(yōu)點(diǎn)是,C能幫你完成程序中的很大一部分工作。(其實(shí)是你調(diào)用了前輩們已做好的工作,這此工作是:編譯器所做的、程序庫(kù)所做的)

道理很簡(jiǎn)單:一件事能用工具設(shè)備完成的盡量用,無法用時(shí)用人工。C就是寫單片機(jī)程序的一個(gè)極好的“工具設(shè)備”。

用C的風(fēng)險(xiǎn)在哪里?
一個(gè)程序什么都OK了,就缺一些庫(kù)文件!找又找不到。
如果你會(huì)匯編,就可以自己做這個(gè)找不到的這個(gè)庫(kù)。

總之C適合大多數(shù)的人,匯編僅適用很少的一部分人,但用匯編寫程序的人,一定是高手,否則他駕馭不了單片機(jī)。
做匯編需要徹底地了解單片機(jī),做C無需要了解到很底層。而要精通單片機(jī),匯編又是最佳手段。

個(gè)人建議:所有學(xué)單片機(jī)的同學(xué)學(xué)C,C是在大勢(shì)所趨,也適合絕大多數(shù)人。特別是團(tuán)體作戰(zhàn),未來不是單打獨(dú)斗的年代!
也建議那些想精通單片機(jī)的同學(xué),學(xué)好匯編,匯編天馬行空,不受庫(kù)存文件、頭文件限制,不受C的規(guī)矩。當(dāng)然不能放棄C。

一但學(xué)好了匯編,你再打開你的C編譯后的匯編看看,這時(shí)就知道缺點(diǎn)在那里,就能提高自己C語言的水平。也能輕松掌握C當(dāng)中繞人的難點(diǎn)。


評(píng)分

參與人數(shù) 4黑幣 +45 收起 理由
yousunny + 30 很給力!
青蛙打傘 + 5 絕世好帖!
zh234 + 5 很給力!
h832ea + 5 很給力!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏10 分享淘帖 頂8 踩
回復(fù)

使用道具 舉報(bào)

來自 2#
ID:1058626 發(fā)表于 2022-12-21 20:35 | 只看該作者
無法直接說清哪個(gè)用處大,不過用c的開發(fā)者肯定比匯編的多。  優(yōu)缺點(diǎn):  c開發(fā)比匯編容易很多,隱藏了cpu細(xì)節(jié),標(biāo)準(zhǔn)庫(kù)運(yùn)行庫(kù)等很豐富,免費(fèi)編譯器、ide和開源代碼很多,能輕松開發(fā)多種平臺(tái)程序,基本可以認(rèn)為硬件無關(guān),開發(fā)起來模塊化程度高,邏輯性和可讀性高。  匯編需要時(shí)刻關(guān)注cpu細(xì)節(jié),沒太多的庫(kù)可用,免費(fèi)編譯器和、ide不多,每種編譯器對(duì)語言的語法等要求差異大,代碼模塊化程度低,邏輯混亂難以閱讀,具有很大的平臺(tái)相關(guān)性和硬件相關(guān)性,所以開發(fā)起來要更吃力。  相比而言,c更受歡迎,但是匯編也有其優(yōu)勢(shì),首當(dāng)其沖的就是性能,如果c做出來的代碼性能難以優(yōu)化而且性能不足,匯編是無可替代的剛需。其次,匯編是嵌入式開發(fā),比如紅綠燈等功能硬件,匯編能更更能滿足需要。再次,匯編逆向愛好者們的家常菜,把別人的程序直接反編譯,可以輕松得到匯編源代碼。第四,系統(tǒng)底層功能,比如驅(qū)動(dòng)等,可以用匯編開發(fā)。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

來自 3#
ID:73992 發(fā)表于 2022-12-31 21:41 | 只看該作者
對(duì)于安全,可靠性,精度,性能要求高的場(chǎng)合用匯編是適宜的。說c用的人多的,是因?yàn)閰^(qū)域做高精度設(shè)備和裝備的公司少像醫(yī)學(xué)檢測(cè)設(shè)備,化驗(yàn)設(shè)備。科技研發(fā)型企業(yè)也不多,像手機(jī)系統(tǒng),電子音樂,芯片,模擬感官,等等。基礎(chǔ)科技研發(fā)公司也不多,比如光學(xué) 化學(xué) 微生物,數(shù)學(xué) 等等自然科學(xué)。這是環(huán)境造成的,不是c比匯編好造成的。之所以看到用C的多,是因?yàn)橄袷找魴C(jī),熱水器,電子表,流水燈等等,遠(yuǎn)程水表,發(fā)光廣告字,像這些場(chǎng)合,用匯編相當(dāng)于大材小用了。
匯編語言是質(zhì)樸的語言,世界上很多宏偉巨著都是用最質(zhì)樸的語言寫的。那些書上甚至沒有形容詞,因?yàn)樾稳菰~無法準(zhǔn)確描繪那些場(chǎng)面,只有用最質(zhì)樸的語言與方法,才能做到。
C就像是形容詞,什么萬里無云,什么晴空萬里,風(fēng)和日麗,等等。用這些形容詞也能拼出文章出來。
如果是個(gè)人愛好,或者diy,或者自己研究什么項(xiàng)目的,我推薦匯編。

評(píng)分

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

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

來自 4#
ID:247571 發(fā)表于 2023-9-5 10:53 | 只看該作者
這個(gè)有意思,能夠深入單片機(jī)技術(shù)。每個(gè)人的發(fā)言我都看過了,都比較片面。我91級(jí)計(jì)算機(jī)專業(yè),大學(xué)畢業(yè)后,一直做單片機(jī)開發(fā)工作,一直用匯編語言寫單片機(jī)項(xiàng)目,到2002年逐漸改用Franklin C51,也就是現(xiàn)在keil的前身。基本上市場(chǎng)上常見的8位,16位,32位單片機(jī)我都開發(fā)過產(chǎn)品。
要寫好單片機(jī),必須要精通單片機(jī)的匯編語言,c語言也要精通。小米的雷軍早年間用PC的匯編寫了很多PC端的程序,精髓都在匯編里面。單片機(jī)也一樣,能夠靈活運(yùn)用匯編語言,就能夠?qū)懗龈咝У拇a,用c的達(dá)不到匯編的高效率的;特別在高性能單片機(jī),例如stm32單片機(jī),寫出好的嵌入式軟件,要用匯編寫好bootloader引導(dǎo)程序,中斷代碼,程序架構(gòu),代碼的堅(jiān)固性、程序的實(shí)時(shí)性(不卡),都是有匯編來保證的。32位單片機(jī)里面有設(shè)計(jì)專門為OS打造的寄存器和軟件中斷等資源,如果用匯編寫,那效率會(huì)很高的。c語言用來完成app應(yīng)用比較高效,這里指的是開發(fā)項(xiàng)目時(shí)間比匯編快。

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

5#
ID:167113 發(fā)表于 2017-3-1 08:21 | 只看該作者
我的很多朋友勸我學(xué)習(xí) c,因?yàn)閏資源多,移植容易.
回復(fù)

使用道具 舉報(bào)

6#
ID:166552 發(fā)表于 2017-3-1 15:51 | 只看該作者
初學(xué)用C好,要想真正領(lǐng)會(huì)單片機(jī)的秒處,還是弄懂匯編。
回復(fù)

使用道具 舉報(bào)

7#
ID:153041 發(fā)表于 2017-3-1 17:02 | 只看該作者
高級(jí)語言存在的意義就是解放軟件生產(chǎn)力。所付出的代價(jià)就是編譯,還有一些效率上的損失(現(xiàn)在也可忽略)。為什么還要強(qiáng)調(diào)匯編,因?yàn)闄C(jī)器只認(rèn)識(shí)匯編,鉆到最下面就是匯編。
回復(fù)

使用道具 舉報(bào)

8#
ID:167489 發(fā)表于 2017-3-1 19:39 | 只看該作者
c吧,c 普遍
回復(fù)

使用道具 舉報(bào)

9#
ID:167525 發(fā)表于 2017-3-1 21:29 | 只看該作者
鑒于c的廣泛還是學(xué)c,因?yàn)閰R編現(xiàn)在不是很普及
回復(fù)

使用道具 舉報(bào)

10#
ID:167560 發(fā)表于 2017-3-1 23:11 | 只看該作者
建議學(xué)C,C簡(jiǎn)單易懂,精通C后再學(xué)匯編
回復(fù)

使用道具 舉報(bào)

11#
ID:167581 發(fā)表于 2017-3-2 09:37 | 只看該作者
C語言是基礎(chǔ),匯編是手段!
回復(fù)

使用道具 舉報(bào)

12#
ID:167586 發(fā)表于 2017-3-2 09:59 | 只看該作者
從C入手吧,匯編對(duì)芯片來說效率高,可苦了寫代碼的了。
回復(fù)

使用道具 舉報(bào)

13#
ID:167592 發(fā)表于 2017-3-2 09:59 | 只看該作者
肯定先學(xué)c,畢竟c是主流。匯編只要看得懂就行
回復(fù)

使用道具 舉報(bào)

14#
ID:167586 發(fā)表于 2017-3-2 10:00 | 只看該作者
建議C開始,匯編寫起來效率太低。
回復(fù)

使用道具 舉報(bào)

15#
ID:167592 發(fā)表于 2017-3-2 10:00 | 只看該作者
還是建議學(xué)c,匯編語言只要看得懂會(huì)簡(jiǎn)單的用就行了
回復(fù)

使用道具 舉報(bào)

16#
ID:64017 發(fā)表于 2017-3-2 10:24 | 只看該作者
我的很多朋友勸我學(xué)習(xí) c,因?yàn)閏資源多,移植容易.
回復(fù)

使用道具 舉報(bào)

17#
ID:167640 發(fā)表于 2017-3-2 13:34 | 只看該作者
看專業(yè)書和教程比較好 上手快
回復(fù)

使用道具 舉報(bào)

18#
ID:167643 發(fā)表于 2017-3-2 13:40 | 只看該作者
先學(xué)好C,后面再大概了解匯編指令就好,匯編就是一個(gè)輔助,用的不多。
回復(fù)

使用道具 舉報(bào)

19#
ID:167643 發(fā)表于 2017-3-2 13:42 | 只看該作者
先學(xué)好C,后面再大概了解下匯編就好。
回復(fù)

使用道具 舉報(bào)

20#
ID:167641 發(fā)表于 2017-3-2 14:48 | 只看該作者
新手建議從C學(xué)起
回復(fù)

使用道具 舉報(bào)

21#
ID:125378 發(fā)表于 2017-3-3 13:28 | 只看該作者
肯定學(xué)習(xí)C語言啊,C語言用的廣泛,易于移植
回復(fù)

使用道具 舉報(bào)

22#
ID:167866 發(fā)表于 2017-3-3 13:45 | 只看該作者
學(xué)C吧 C簡(jiǎn)單 而且夠用了
回復(fù)

使用道具 舉報(bào)

23#
ID:160607 發(fā)表于 2017-3-5 11:28 | 只看該作者
對(duì)于90%以上的人C就可以了,做項(xiàng)目很少用匯編的,維護(hù)性差,一致性差。原來的成本問題及效率問題,現(xiàn)在基本差異不大了。
回復(fù)

使用道具 舉報(bào)

24#
ID:168293 發(fā)表于 2017-3-5 13:58 | 只看該作者
都要學(xué)!c移植性好,匯編不可移植,在一些要求高性能的地方必須用匯編優(yōu)化,用keil,iar都有反匯編工具的,自已寫的c直接轉(zhuǎn)為匯編!
回復(fù)

使用道具 舉報(bào)

25#
ID:168293 發(fā)表于 2017-3-5 14:28 | 只看該作者
都要學(xué),C移植可讀性好,匯編不可移植,在一些需要高性能的場(chǎng)合操作系統(tǒng)內(nèi)核要用匯編,用編繹器的反匯編工具可以方便的把你寫的C轉(zhuǎn)為匯編,方便學(xué)習(xí)!
回復(fù)

使用道具 舉報(bào)

26#
ID:168453 發(fā)表于 2017-3-6 09:18 | 只看該作者
xue C 吧,匯編基本沒人用了
回復(fù)

使用道具 舉報(bào)

27#
ID:146468 發(fā)表于 2017-3-6 09:52 | 只看該作者
這篇文章太好了,精辟。
回復(fù)

使用道具 舉報(bào)

28#
ID:168481 發(fā)表于 2017-3-6 10:33 | 只看該作者
學(xué)C語言好 ,一開始學(xué)C容易上手,匯編艱澀難懂
回復(fù)

使用道具 舉報(bào)

29#
ID:168489 發(fā)表于 2017-3-6 11:01 | 只看該作者
學(xué)習(xí)c吧  我就是學(xué)習(xí)的這個(gè)
回復(fù)

使用道具 舉報(bào)

30#
ID:168598 發(fā)表于 2017-3-6 17:06 | 只看該作者
還是學(xué)C語言吧  不過我學(xué)了C#
回復(fù)

使用道具 舉報(bào)

31#
ID:140559 發(fā)表于 2017-3-6 20:34 | 只看該作者
初學(xué)c比較實(shí)用,資源多,可移植性高
回復(fù)

使用道具 舉報(bào)

32#
ID:168677 發(fā)表于 2017-3-6 21:22 | 只看該作者
C啊   匯編會(huì)有專門的人去做,這種語言了解就行了,我們可是要干大事的人a
回復(fù)

使用道具 舉報(bào)

33#
ID:168412 發(fā)表于 2017-3-6 21:33 | 只看該作者
之前先學(xué)的C,然后學(xué)的匯編。覺得起步邊用邊學(xué),理論結(jié)合實(shí)際比較好
回復(fù)

使用道具 舉報(bào)

34#
ID:168689 發(fā)表于 2017-3-6 22:00 | 只看該作者
買幾本經(jīng)典的C的書。網(wǎng)上可以百度到基礎(chǔ)先打好
回復(fù)

使用道具 舉報(bào)

35#
ID:169050 發(fā)表于 2017-3-8 10:01 | 只看該作者
建議學(xué)習(xí)c語言,現(xiàn)在畢竟簡(jiǎn)單方便
回復(fù)

使用道具 舉報(bào)

36#
ID:169096 發(fā)表于 2017-3-8 13:27 | 只看該作者
學(xué)c比較實(shí)用,資源多,可移植性高
回復(fù)

使用道具 舉報(bào)

37#
ID:169113 發(fā)表于 2017-3-8 14:19 | 只看該作者
一般可以先學(xué)一些匯編基礎(chǔ),電子專業(yè)都會(huì)學(xué)到,再學(xué)c就不叫容易理解
回復(fù)

使用道具 舉報(bào)

38#
ID:169074 發(fā)表于 2017-3-8 14:25 | 只看該作者
先學(xué)習(xí)C吧,容易上手能夠提高學(xué)習(xí)積極性,先學(xué)匯編的話,容易打擊積極性
回復(fù)

使用道具 舉報(bào)

39#
ID:169114 發(fā)表于 2017-3-8 15:18 | 只看該作者
先C后匯編51黑因你而精彩
回復(fù)

使用道具 舉報(bào)

40#
ID:68585 發(fā)表于 2017-3-8 15:20 | 只看該作者
匯編可以點(diǎn)基礎(chǔ),然后去學(xué)C,如果沒有學(xué)匯編,突然學(xué)C,對(duì)指針理解比較吃力。
回復(fù)

使用道具 舉報(bào)

41#
ID:165270 發(fā)表于 2017-3-8 21:58 | 只看該作者
學(xué)習(xí)C比較好,效率高,可移植,與硬件無關(guān)。
回復(fù)

使用道具 舉報(bào)

42#
ID:165046 發(fā)表于 2017-3-9 15:24 | 只看該作者
先學(xué)C吧,C好理解(個(gè)人覺得)好入手,會(huì)用了在轉(zhuǎn)向匯編
回復(fù)

使用道具 舉報(bào)

43#
ID:169505 發(fā)表于 2017-3-9 21:50 | 只看該作者
梳理得挺周全的  給力
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区二区三区在线观看免费 | 日日操操| 91精品国产一区二区三区 | 91 久久 | 日韩高清中文字幕 | 亚洲一区在线观看视频 | 日韩中文字幕一区二区 | 亚洲视频精品 | 日本精品999 | 在线视频国产一区 | 国产精品电影网 | 99小视频 | 亚洲国产精品福利 | 一区二区三区免费 | 青青草综合 | 亚洲天堂精品久久 | 国产剧情一区 | 91av小视频| 久久中文字幕一区 | 欧美亚洲国产日韩 | 日本黄色大片免费 | 国产精品美女www爽爽爽视频 | 国产一级片免费看 | 久久se精品一区精品二区 | 亚洲欧美久久 | 久久久国产精品网站 | 大香网伊人 | www.黄色网 | 国产一区二区三区www | 久久精品久久久久久 | 亚洲成人免费视频 | 国产高清视频 | 成人精品在线视频 | 青青草av网站| 亚洲精品v | 久久久久国产一区二区三区 | 欧美激情一区二区三级高清视频 | 一区二区三区在线电影 | 欧美一级久久 | 亚洲区一区二 | 精品久久久久久久 |