找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

你認(rèn)為在單片機(jī)采用C語言和匯編語言各自的優(yōu)缺點是什么

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:727081 發(fā)表于 2020-6-24 19:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
rt
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

來自 2#
ID:287575 發(fā)表于 2020-7-1 22:24 | 只看該作者
都沒說到點子上,匯編效率高,同一件事C的代碼長度要比匯編長(當(dāng)然要精通匯編,一個半吊子的匯編程序員除外),C語言比匯編易學(xué),其程序移植性好,即很容易從一種單片機(jī)轉(zhuǎn)到另一種單片機(jī),而匯編根本不可能,在有些對價格非常敏感的產(chǎn)品中,就用匯編占ROM少就可以節(jié)省money了,有一次我同事用C寫的程序要4.5K空間, 只能用8K的芯片了,后來我用匯編做只要3.7K,選4K的芯片,每片節(jié)約0,75元,一年要用30多萬片,尤其在單片機(jī)容量跨界時重要,不跨界時一般無所謂了!)

評分

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

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:727081 發(fā)表于 2020-6-25 11:27 | 只看該作者
使用C語言效率更高,使用匯編語言有利于直接向硬件編程
回復(fù)

使用道具 舉報

地板
ID:687694 發(fā)表于 2020-6-26 11:14 | 只看該作者
多年前資源缺乏,匯編可用,多年后的今天資源過剩,C語言就火了。
回復(fù)

使用道具 舉報

5#
ID:790097 發(fā)表于 2020-6-26 12:01 | 只看該作者
首先,如果是單片機(jī)開發(fā)的話,我認(rèn)為,無非也是考驗開發(fā)者操作寄存器的能力,學(xué)習(xí)匯編語言,雖然難懂而生硬,但是對于單片機(jī)內(nèi)部的運(yùn)行,尋址,計算,跳轉(zhuǎn),以及時序的把握,都要摸得個一清二楚,這是C語言中編譯器幫你做了的.但如果你真的可以用匯編寫一兩個項目出來,相信你對單片機(jī)的原理會有一個質(zhì)的飛躍.同時日后的C語言開發(fā),你也會下意識珍惜編譯結(jié)果而去優(yōu)化自己的C語言寫法.其次,還是針對單片機(jī)開發(fā)的話,單片機(jī)面向的是較低的市場,部分單片機(jī)甚至沒有C編譯器,而上頭卻決定用這一塊單片機(jī)的話,這就要求你快速上手

評分

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

查看全部評分

回復(fù)

使用道具 舉報

6#
ID:600952 發(fā)表于 2020-6-26 13:27 | 只看該作者
額,使用C語言效率更高,更簡潔,而且可移植性好些,使用匯編語言有利于直接向硬件編程,編寫出的效率高,性能好些,不過現(xiàn)在這個好像不是那么明顯了
回復(fù)

使用道具 舉報

7#
ID:790159 發(fā)表于 2020-6-26 13:52 | 只看該作者
一般99%的應(yīng)用都是C了,目前匯編只用在單片機(jī)的啟動代碼,這些都是廠家做的。現(xiàn)在的編譯器都是非常智能的生成的代碼效率都足夠高了!
回復(fù)

使用道具 舉報

8#
ID:789767 發(fā)表于 2020-6-27 01:44 | 只看該作者
覺得匯編偏向于底層硬件,而C會偏向大眾吧,可移植性,效率啥的都會高一點
回復(fù)

使用道具 舉報

9#
ID:790670 發(fā)表于 2020-6-27 08:20 | 只看該作者
C語言編屬于高級語言,具有可移植性,能夠結(jié)構(gòu)化編程。使用標(biāo)準(zhǔn)C語言的程序,幾乎都可以不作改變移植到不同的微機(jī)平臺上,對于嵌入式等的微控制芯片,屬于標(biāo)準(zhǔn)C語言的部分也很少需要修改,而且程序很容易讀懂。 C語言編寫程序結(jié)構(gòu)清晰,移植性好,容易維護(hù)和修改。 匯編語言針對不同的操作系統(tǒng)平臺,不同的微控制器,指令都是完全不同的,即使指令相似,也不具有可移植性。但是匯編語言是針對專門的控制器的,所以運(yùn)行速度可以精確到一個指令周期。匯編語言的程序讀懂需要借助微控制器的指令手冊以及各個寄存器的說明,所以很難讀懂。 匯編語言編寫代碼實時性強(qiáng),能夠直接控制硬件的工作狀態(tài),但是不具有可移植性,維護(hù)和修改困難。
回復(fù)

使用道具 舉報

10#
ID:155507 發(fā)表于 2020-6-27 08:34 | 只看該作者
C語言是用于高級和低級應(yīng)用程序的中級語言。低級和高級語言之間的區(qū)別是:低級語言更接近硬件。因此,C和匯編語言都是低級編程語言。 匯編語言更接近于硬件。

匯編程序是一種低級語言,它依賴于系統(tǒng)體系結(jié)構(gòu),因此它可能非常專業(yè)。因此,如果您為一臺計算機(jī)編寫匯編程序例程,則不能在不進(jìn)行徹底重寫的情況下將其移植到具有不同體系結(jié)構(gòu)的另一臺計算機(jī)上 對于C語言,您可以很容易地將C移植到各種平臺上。

最大的區(qū)別當(dāng)然是匯編可以得到您要編寫的內(nèi)容。您按原樣編寫每條指令(一條助記符,一條指令給處理器),并且此后沒有對代碼進(jìn)行優(yōu)化。

在C語言(和其他高級語言)中,每條指令/代碼行可能會向處理器產(chǎn)生數(shù)十條指令。此外,您的代碼也會得到優(yōu)化。對于C語言來說,這是一個兩步過程;首先進(jìn)行編譯,然后將其鏈接與 庫和其他目標(biāo)文件。

回復(fù)

使用道具 舉報

11#
ID:788576 發(fā)表于 2020-6-27 09:31 | 只看該作者
匯編程序是一種低級語言,它依賴于系統(tǒng)體系結(jié)構(gòu),因此它可能非常專業(yè)。因此,如果您為一臺計算機(jī)編寫匯編程序例程,則不能在不進(jìn)行徹底重寫的情況下將其移植到具有不同體系結(jié)構(gòu)的另一臺計算機(jī)上 對于C語言,您可以很容易地將C移植到各種平臺上。
回復(fù)

使用道具 舉報

12#
ID:790246 發(fā)表于 2020-6-27 10:12 | 只看該作者
現(xiàn)在用匯編的少了吧,學(xué),F(xiàn)在大多數(shù)編程都要求用c了,c效率高,簡便
回復(fù)

使用道具 舉報

13#
ID:790738 發(fā)表于 2020-6-27 10:15 | 只看該作者
匯編語言編寫代碼實時性強(qiáng),能夠直接控制硬件的工作狀態(tài),占用資源少,程序執(zhí)行效率高,但是不具有可移植性,維護(hù)和修改困難。C能夠結(jié)構(gòu)化編程,可移植性強(qiáng)。
回復(fù)

使用道具 舉報

14#
ID:466730 發(fā)表于 2020-6-27 12:19 | 只看該作者
因為實際中有很多客戶要求價格極低,好像用到的大部分就是匯編完成的芯片,貌似價格都比較低
回復(fù)

使用道具 舉報

15#
ID:452950 發(fā)表于 2020-6-27 21:19 | 只看該作者
與匯編語言相比,C語言效率更高更簡潔
回復(fù)

使用道具 舉報

16#
ID:791126 發(fā)表于 2020-6-27 22:21 | 只看該作者
c語言更加簡單易學(xué),應(yīng)用范圍廣,匯編語言對硬件編程比較好
回復(fù)

使用道具 舉報

17#
ID:789847 發(fā)表于 2020-6-28 00:17 | 只看該作者
匯編語言是最接近底層的,可以直接轉(zhuǎn)換為機(jī)器語言,這樣效率會很高;但c語言是高級語言,編寫起來不會那么麻煩,更簡潔。
回復(fù)

使用道具 舉報

18#
ID:788840 發(fā)表于 2020-6-28 08:58 | 只看該作者
c語言思路清晰,更加通俗易懂啊
回復(fù)

使用道具 舉報

19#
ID:791488 發(fā)表于 2020-6-28 09:28 | 只看該作者
匯編語言移植性不夠好,C的話不會因為不同單片機(jī)結(jié)構(gòu)要改里面的程序,可以直接搬用
回復(fù)

使用道具 舉報

20#
ID:283954 發(fā)表于 2020-6-28 15:20 | 只看該作者
若有大志,需從底層做起,學(xué)會匯編,直搗CPU內(nèi)臟,將來或能設(shè)計CPU。若為謀生,需與時并進(jìn),符合潮流,學(xué)C語言,出貨快,謀職容易。所謂高級語言就是“替你向CPU說你不需要懂的話“,也因此你可能永遠(yuǎn)不會懂如何對CPU說話。
回復(fù)

使用道具 舉報

21#
ID:791981 發(fā)表于 2020-6-28 16:55 | 只看該作者
C語言的可讀性較強(qiáng),讀程序較為簡單,而匯編很難在短時間內(nèi)讀懂程序。
匯編的時序性很強(qiáng),可以精確控制時序流程,而C不可以。
回復(fù)

使用道具 舉報

22#
ID:656668 發(fā)表于 2020-6-29 00:05 | 只看該作者
C語言學(xué)習(xí)相對容易,寫出的代碼容易理解,而要學(xué)習(xí)匯編語言顯得有點吃力,需要你有相應(yīng)的匯編語言基礎(chǔ),并且隊微機(jī)原理這門課程有初步的了解。

評分

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

查看全部評分

回復(fù)

使用道具 舉報

23#
ID:792407 發(fā)表于 2020-6-29 08:47 | 只看該作者
單片機(jī)開發(fā)用C和匯編優(yōu)缺點對比如下:
1、C可以讀性較強(qiáng),容易讓后繼者接手進(jìn)行擴(kuò)展,匯編相對而言難度就大多了,一般人很難短時間內(nèi)弄懂原開發(fā)者的原意和理清思路。
2、C可移植性較強(qiáng),一個單片機(jī)的程序稍加修改,可以移植到其他環(huán)境下使用,匯編程序幾乎無法移植。
3、匯編的時序性很強(qiáng),可以精確嚴(yán)格按既定時序控制流程,C無法做到。
4、匯編可以精確定時,C只能初略定時。
回復(fù)

使用道具 舉報

24#
ID:592807 發(fā)表于 2020-6-29 11:32 | 只看該作者
C能生成匯編,
匯編沒法生成C
回復(fù)

使用道具 舉報

25#
ID:788523 發(fā)表于 2020-6-29 20:41 | 只看該作者
C語言邏輯更清晰,我感覺這是C語言最大的優(yōu)點
回復(fù)

使用道具 舉報

26#
ID:794058 發(fā)表于 2020-6-30 17:37 | 只看該作者
C語言更簡潔,而且適用比較多的地方,但是感覺出錯誤有點難找。匯編語言更專業(yè)向,表達(dá)一樣的功能要使用的語句更多。
回復(fù)

使用道具 舉報

27#
ID:764088 發(fā)表于 2020-7-1 15:45 | 只看該作者
1)用匯編就是浪費(fèi)工程師生命,浪費(fèi)公司資源,
2)啥時代了,還用匯編,雖然我曾它用那么久,除非你非常在意 那點單片機(jī)價格。
回復(fù)

使用道具 舉報

28#
ID:219787 發(fā)表于 2020-7-1 16:43 | 只看該作者
(1)匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。
C語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機(jī)語言。缺點是占用資源較多,執(zhí)行效率沒有匯編高。
回復(fù)

使用道具 舉報

29#
ID:781892 發(fā)表于 2020-7-1 18:00 來自手機(jī) | 只看該作者
c語言比較高效,比較適合工程
回復(fù)

使用道具 舉報

30#
ID:784384 發(fā)表于 2020-7-1 21:03 | 只看該作者
我也是小白,唯一的感覺就是C語言要比匯編省點事,匯編啥都要自己設(shè)定存儲位置和功能。相比較而言我更喜歡C語言
回復(fù)

使用道具 舉報

31#
ID:795412 發(fā)表于 2020-7-2 11:22 | 只看該作者
匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其
主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所
以不易移植。
C語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機(jī)
語言。缺點是占用資源較多,執(zhí)行效率沒有匯編高。
對于目前普遍使用的RISC架構(gòu)的8bitMCU來說,其內(nèi)部ROM、RAM、STACK等資源都有
限,如果使用C語言編寫,一-條C語言指令編譯后,會變成很多條機(jī)器碼,很容易出現(xiàn)ROM
空間不夠、堆棧溢出等問題。而且一些單片機(jī)廠家也不一定能提供C編譯器。而匯編語言,
一條指令就對應(yīng)-一個機(jī)器碼,每一步執(zhí)行什幺動作都很清楚,并且程序大小和堆棧調(diào)用情況
都容易控制,調(diào)試起來也比較方便。
回復(fù)

使用道具 舉報

32#
ID:400545 發(fā)表于 2020-7-2 15:45 | 只看該作者
匯編語言的優(yōu)缺點總結(jié)如下:       優(yōu)點:       1)針對性強(qiáng),匯編語言通常是為特定的處理器或系列計算機(jī)二進(jìn)制碼專門設(shè)計的,所以不同處理器架構(gòu)往往對應(yīng)不同的匯編語言。比如x86架構(gòu)的就是x86匯編,ARM架構(gòu)的CPU對應(yīng)于ARM匯編,MIPS架構(gòu)的CPU對應(yīng)于MIPS匯編,而我們公司用的Powerpc的CPU那對應(yīng)使用的匯編語言遵循PPC原則。       2)匯編語言僅僅略微高于計算機(jī)語言,仍保留機(jī)器語言部分優(yōu)點,能夠?qū)C(jī)器硬件精確控制?捎行У卦L問、控制計算機(jī)的各種硬件設(shè)備,如磁盤、存儲器、CPU、I/O端口等。         3)占用資源少、程序執(zhí)行效率高。在匯編語言中,一條指令就對應(yīng)一條機(jī)器碼 (而高級語言中,一條對應(yīng)到多條),每一步執(zhí)行什么動作都很清楚,并且程序大小和調(diào)用情況都容易控制,調(diào)試起來也比較方便。所以在資源較少單片機(jī)開發(fā)中,我們經(jīng)常用到匯編語言。  利用計算機(jī)所有硬件特性并能直接控制硬件的語言。  但匯編語言也不可避免存在一些缺點:      1)匯編語言比較難懂,編寫比較復(fù)雜。      2)由于其針對性較強(qiáng),不同的CPU,其匯編語言可能有所差異,所以不易移植。  C語言的優(yōu)點有:         1) C語言的表現(xiàn)能力和處理能力極強(qiáng)。它不僅具有豐富的運(yùn)算符和數(shù)據(jù)類型,便于實現(xiàn)各類復(fù)雜的數(shù)據(jù)結(jié)構(gòu)。        2)層次清晰,便于按模塊化方式組織程序,易于調(diào)試和維護(hù)。        3)C語言集高級語言和低級語言的功能于一體。既可用于系統(tǒng)軟件的開發(fā),也適合于應(yīng)用軟件的開發(fā)。        4)C語言還具有可移植性強(qiáng)的特點。     C語言也有其缺點:     1)和高級語言相比,C語言語法限制不太嚴(yán)格,例如對數(shù)組下標(biāo)越界不做檢查等,這影響程序的安全性。        2)類型檢查機(jī)制相對較弱、缺少支持代碼重用的語言結(jié)構(gòu)。        3)C語言面向過程的特點,也使其在應(yīng)用在現(xiàn)代大型軟件時出現(xiàn)困難。     4)和低級語言相比,C語言要先編譯成匯編語言然后再翻譯成機(jī)器指令,這增加了編程困難度。     5)一條C語言可能翻譯成多條機(jī)器指令,需要更大的存儲空間等。
回復(fù)

使用道具 舉報

33#
ID:216120 發(fā)表于 2020-7-2 20:47 | 只看該作者
匯編完全看不懂,C語言不會可以抄!不準(zhǔn)笑!
回復(fù)

使用道具 舉報

34#
ID:634658 發(fā)表于 2020-7-2 21:04 | 只看該作者
匯編語言優(yōu)點:接近于機(jī)器語言,在代碼執(zhí)行速率與效率上任何語言要高,缺點:語言晦澀難懂
回復(fù)

使用道具 舉報

35#
ID:790861 發(fā)表于 2020-7-2 21:14 | 只看該作者
匯編機(jī)器語言效率更快,機(jī)器語言精確控制機(jī)器硬件,控制流程效果,好可移植性不好。c可移植性較強(qiáng),代碼可讀性很強(qiáng)而且思路清楚,只是初學(xué)學(xué)C語言不太好入門吧...
回復(fù)

使用道具 舉報

36#
ID:508160 發(fā)表于 2020-7-2 21:23 | 只看該作者
C語言編程簡單但單片機(jī)運(yùn)行效率低,匯編編程復(fù)雜但單片機(jī)運(yùn)行效率高。在比較追求效率的地方一般用匯編編寫程序。
回復(fù)

使用道具 舉報

37#
ID:633896 發(fā)表于 2020-7-7 11:26 | 只看該作者
我個人感覺C語言對面我們?nèi)菀兹腴T。
匯編編程復(fù)雜,要是我學(xué)是學(xué)不下去的。
回復(fù)

使用道具 舉報

38#
ID:799051 發(fā)表于 2020-7-7 13:58 | 只看該作者
c語言靈活,通用性強(qiáng),編寫起來爽歪歪。匯編嘛你懂的,即機(jī)器語言,芯片指令集很少接觸。
回復(fù)

使用道具 舉報

39#
ID:752280 發(fā)表于 2020-7-7 14:39 | 只看該作者
支持C語言 入門容易 掌握的是跨平臺可移植編程的方法 匯編難學(xué) 不可移植
回復(fù)

使用道具 舉報

40#
ID:169756 發(fā)表于 2020-7-7 18:16 | 只看該作者
C語言編程效率高,不需要了解MCU的指令;
ASM編譯效率高,需要了解MCU的指令和寄存器。
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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