![]() |
發布時間: 2017-6-22 20:22
正文摘要:必學之路,誰人不降,萬千阻擋,不破我雄心壯志,烈士凌云,不毀我三千浮華,醉酒當歌,不沉落溺水亢龍,情義薄云天,了了人無煙,唯有c語言和匯編是我的最愛。 |
看看這本書《單片機原理及接口技術》 |
單片機原理及接口技術 李全利 |
結論:應用于單片機的c51比較好學好用,但只會c不懂匯編的人不會成為單片機用用大家。。∫虼耍柰瑫r學好兩種編程語言。推薦一本雙解c和匯編的教材書:《80C51單片機實用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學習51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學。 |
結論:應用于單片機的c比較好學好用,但只會c不懂匯編的人不會成為單片機應用大家。!因此,需下功夫同時學好兩種編程語言。推薦一本雙解c和匯編的單片機教材書:《80C51單片機實用教程——基于Keil C和Proteus》高等教育出版社ISBN 978-7-04-044532-9, 用于學習51單片機原理,程序(雙解c和匯編)語句條條有注解,便于閱讀理解,便于自學。 |
C語言屬于高級語言。一條C51語句,會編譯為多條甚至許多條匯編指令(例如數學運算和循環程序等),相對來說,C51程序簡潔而清晰,可讀性較好。但c實時性較差,匯編語言指令每一條對應1~3字節機器碼,每一步的執行動作都很清楚,程序大小和堆棧調用情況都容易控制,響應及時,實時性較好。而C51程序并不能被單片機直接執行,需編譯轉換為匯編語言指令。一條C51語句編譯后,會轉換成很多機器碼,占用單片機片內較多資源,可能出現ROM、RAM空間不夠,堆棧溢出等問題;且執行步驟不很明確,有時還會兜圈子,因而實時性較差,甚至會因時序配合不好而出錯。然而,隨著單片機芯片技術的發展,其運行速度和內存容量有了較大提高,這些都為C51的應用創造了有利條件。。 |
c可方便地調用各已有程序模塊。已有程序模塊包括C51編譯器中豐富的庫函數、用戶自編的常用接口芯片功能函數和以前已開發項目中的功能函數。讀者可能會說,匯編程序不也一樣可以調用嗎?不一樣。匯編程序調用時,涉及到模塊中具體的存儲單元,這些存儲單元很可能與主調用程序有重復,會引起沖突而出錯。而C51程序函數中的變量一般為局部變量,主函數調用前不占用存儲單元,僅在調用時由C51編譯器根據存儲區域空余情況臨時分配,使用完畢即行釋放,一般不會發生沖突而出錯。因此,C51程序可方便地調用各已有程序模塊,減少重復勞動,利于團隊合作開發,大大提高編程效率。 |
C語言具有豐富且功能強大的運算符,能以簡單的語句方便地實現各種復雜的運算和程序。相比之下,匯編語言要實現較復雜的運算和程序,就比較困難。例如,雙字節的乘除法,匯編語言要用許多條指令操作才能完成;而C51只需一條語句便能方便實現。又例如,循環、查表和散轉等程序,C51語句實現起來也相對簡單方便(當然C51語句編譯轉換為匯編語言指令后仍然復雜,只是不用程序員操心,由編譯器自動完成罷了)。 |
用匯編語言編程,幾乎每一條指令操作都與具體的存儲單元有關,80C51單片機的片內存儲空間容量有限,編程之初即需安排好片內存儲單元的用途,且一般不宜重復使用。當一些應用項目程序量較大時,片內存儲單元有可能捉襟見肘,稍有不慎就將出錯,編程相對復雜。而C51編譯系統能自動完成對變量存儲單元的分配和使用,且對函數內局部變量占用的存儲單元,僅在調用時臨時分配,使用完畢即行釋放,大大提高了80C51片內有限存儲空間的使用效率。因此,使用者只需專注于軟件編程,不需過多關注涉及的具體存儲單元及其操作指令,編程相對方便。 |
最主要還是興趣,還有 是否要用 |
貌似把C學好就很不錯了,匯編用的地方很少,推薦C指針這本書 |
其實:匯編比C簡單,C有很多條條框,且不易理解。匯編就那么幾句,比C少多了。 由于匯編的句子少,所以實現“大的”目標就困難了,需要智商構思出解決方案。 只要樓主有足夠的智商,學匯編一定很快,且比C方便。 要點:讀懂單片機原理,細看單片機的指令系統。 |
多看范例程序,結合自己的想法,模仿做一些簡單實驗,然后做個大實驗,把全部功能都用上 |
C語言還好 感覺匯編語言不太懂 |