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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3206|回復: 6
打印 上一主題 下一主題
收起左側

C語言和匯編語言在單片機開發中,各有什么優缺點?

[復制鏈接]
跳轉到指定樓層
樓主
ID:645244 發表于 2019-11-19 18:46 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
新手,求教謝謝大佬們

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

使用道具 舉報

沙發
ID:263427 發表于 2019-11-19 20:04 | 只看該作者
您好,兩個語言的區別如下:
匯編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。
C語言是一種結構化的高級語言。其優點是可讀性好,移植容易,是普遍使用的一種計算機語言。缺點是占用資源較多,執行效率沒有匯編高。

在實際開發中,現在基本都是用c語言,支持比較好。其次匯編比較難,新手入門比較困難。我的建議是先用c語言,等到后期了可以了解一下匯編,因為做啟動代碼的時候還的用。

評分

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

查看全部評分

回復

使用道具 舉報

板凳
ID:263427 發表于 2019-11-19 21:47 | 只看該作者
您好,下面這個是我從論壇里面找出來的精華帖。你可以參考參考。

C與匯編:

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

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

C:由于通用,C只能按部就班,因此程序長,重復多,運行時間多。
匯編:因靈活程序方式,可以節省內存,節省運行時間。
通常,匯編程序會比C少用內存及時間在30%以上。但大多數情況下,內存現在不是問題了,時間也不會太緊。所以節省內存與時間的意義不大,但也有特例。

說明一下:
C是用堆棧傳遞參數的,但每次參數要彈出壓入,所以傳遞時有多花一點時間。匯編傳遞參數直接到達目標,快多了。
C一個子程序一個包。而匯編的一個子程序可以切入跳轉另一個子程序中,以節省內存。

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

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

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

可見 C的這個優點是,C能幫你完成程序中的很大一部分工作。(其實是你調用了前輩們已做好的工作,這此工作是:編譯器所做的、程序庫所做的)

道理很簡單:一件事能用工具設備完成的盡量用,無法用時用人工。C就是寫單片機程序的一個極好的“工具設備”。

用C的風險在哪里?
一個程序什么都OK了,就缺一些庫文件!找又找不到。
如果你會匯編,就可以自己做這個找不到的這個庫。

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

個人建議:所有學單片機的同學學C,C是在大勢所趨,也適合絕大多數人。特別是團體作戰,未來不是單打獨斗的年代!
也建議那些想精通單片機的同學,學好匯編,匯編天馬行空,不受庫存文件、頭文件限制,不受C的規矩。當然不能放棄C。

一但學好了匯編,你再打開你的C編譯后的匯編看看,這時就知道缺點在那里,就能提高自己C語言的水平。也能輕松掌握C當中繞人的難點。
回復

使用道具 舉報

地板
ID:637250 發表于 2019-11-19 22:59 | 只看該作者
C語言的優點:適用范圍廣,可移植性強,開發周期短。
缺點:比匯編語言的執行效率低
匯編的優點:執行效率高,能夠對CPU中的寄存器直接操作,直接作用于單片機的硬件環境,控制直接,精準,所以要精確控制,時序特別嚴格的要用匯編語言。
缺點:過分依賴硬件,適用范圍窄,不同的機器對應不同的匯編指令,開發周期短,可移植性差,開發周期長。
C語言簡單易懂,匯編有c的基礎好學一些,個人認為小白先學c語言
回復

使用道具 舉報

5#
ID:525068 發表于 2019-11-22 00:24 | 只看該作者
C語言入門簡單易上手,比匯編容易
回復

使用道具 舉報

6#
ID:625113 發表于 2019-11-23 11:02 來自手機 | 只看該作者
匯編語言執行效率會高一點,但是相對C語言會難學一點
回復

使用道具 舉報

7#
ID:398709 發表于 2019-11-23 15:57 | 只看該作者
簡單來說就是C語言更容易看,匯編運行效率更高
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲欧美中文日韩在线 | 日韩视频免费 | 波波电影院一区二区三区 | 精品动漫一区 | 一区二区三区欧美 | 亚洲精品乱码久久久久久久久 | 亚洲国产精品99久久久久久久久 | 久久www免费人成看片高清 | 欧美一区二区三区在线观看 | 91香蕉嫩草 | 午夜国产| 欧美美女爱爱视频 | 在线免费黄色小视频 | 国产视频h | 日韩视频1 | 爱爱综合网 | 亚洲精品成人av | 欧洲一级黄 | 91精品国产综合久久精品 | 国产真实乱全部视频 | 狠狠草视频 | 中文字幕亚洲视频 | 亚洲天堂影院 | 国产精品久久久久久影院8一贰佰 | 国产成人精品久久 | 日本爱爱 | 8x国产精品视频一区二区 | 日本国产一区二区 | 欧美日韩免费视频 | 亚洲a在线视频 | 国产精品视频一区二区三区不卡 | 一级黄a视频 | 成人久久视频 | 一区二区三区视频在线 | 国产在线a视频 | 亚洲 中文 欧美 日韩 在线观看 | 久久伊人一区 | 欧美一级片在线看 | 在线视频一区二区三区 | 黄久久久 | 成人区精品 |