找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)是不是所有芯片都可以用C語言編寫?

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:555516 發(fā)表于 2019-6-16 00:06 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
我在論壇上面見到的代碼基本都是用C來寫的,那是不是所以芯片都可以用C來寫,而且匯編語言用在哪里?它們兩者的有什么優(yōu)缺點?小白在線提問....
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

來自 2#
ID:123289 發(fā)表于 2019-6-17 14:50 | 只看該作者
計算機(jī)只能識別機(jī)器碼,即0101,根據(jù)這些有序排列的機(jī)器碼的含義(即硬件指令=這些機(jī)器碼),來運(yùn)行程序。任何語言的程序最終都必須轉(zhuǎn)成機(jī)器碼,否則計算機(jī)不認(rèn)識。
但0101的機(jī)器碼太不方便記意了。于是就用方便記意的語句代替它,這就產(chǎn)生了兩個問題:
1、用什么語句替代機(jī)器碼?
2、誰把它再譯回到機(jī)器碼?
計算機(jī)是外國人發(fā)明的,自然用了英文的語句,不過又帶來了一個新的問題:
一個語句替代多少條機(jī)器碼指令?這是回答你問題的關(guān)鍵了:
匯編語言:一個語句替代一條機(jī)器碼指令,因此它最接近機(jī)器碼,最靈活,也最難掌握。
C語言:一個語句替代一條或多機(jī)器碼指令,因此它效率高,但不靈活。
至于“誰把它再譯回到機(jī)器碼?”,編程平臺幫你完成了,最常用的“翻譯”是KELL。
明白上述的道理后,就會明白:
C是由若干條匯編語句組成的。但這些,用C的人看不出來,因為C不關(guān)心匯編,就沒有必要展示給你看,不過想看也看得到,每次對C程序編譯時,也會生成匯編代碼。
由于C建立在匯編的基礎(chǔ)上,所以它的規(guī)矩多且嚴(yán)格,稍不小心,平臺就不認(rèn)識,C語言強(qiáng)力地依賴庫函數(shù)(各種子程序),但通俗易懂易掌握。
匯編則只依據(jù)CPU的指令系統(tǒng)寫程序,天馬行空,任君游。但要求程序員有很強(qiáng)的邏輯、數(shù)學(xué)水平。
例如:開方。對C語言是一句話的事,而匯編,如你沒有很好的數(shù)學(xué)基礎(chǔ),是根本無法想像得出來的。不過最終的機(jī)器碼目標(biāo)還是一致的。雖然C是一語話的事,也是由匯編寫而來的,只不過不需要你寫,而是前輩們用匯編寫好了,做成了C函數(shù)庫,你直接引用就可以了。
記。河嬎銠C(jī)、單片機(jī)只認(rèn)識機(jī)器碼!
回復(fù)

使用道具 舉報

板凳
ID:525821 發(fā)表于 2019-6-16 04:31 | 只看該作者
這個要看是否有編譯與下載器。
回復(fù)

使用道具 舉報

地板
ID:332444 發(fā)表于 2019-6-16 06:25 | 只看該作者
就我的一知半解來說都是可以用C語言寫的,匯編只是最初期的一種語言,編譯器最終都轉(zhuǎn)為二進(jìn)制碼給單片機(jī)去執(zhí)行,單片機(jī)只能識別二進(jìn)制命令,匯編的缺點是閱讀不便,C語言的有點是接近人的自然語言習(xí)慣,語言發(fā)展到后面就越接近人的自然思維習(xí)慣。
回復(fù)

使用道具 舉報

5#
ID:67443 發(fā)表于 2019-6-16 15:27 | 只看該作者
匯編一般用在啟動文件
回復(fù)

使用道具 舉報

6#
ID:455600 發(fā)表于 2019-6-16 22:10 | 只看該作者
匯編語言可以對某一位進(jìn)行操作
回復(fù)

使用道具 舉報

7#
ID:564333 發(fā)表于 2019-6-17 10:57 | 只看該作者
在單片機(jī)一般都不寫匯編語言,直接用c語言就行了
回復(fù)

使用道具 舉報

8#
ID:564333 發(fā)表于 2019-6-17 11:07 來自手機(jī) | 只看該作者
一般情況下是可以的,但有時候c語言和單片機(jī)不匹配
回復(fù)

使用道具 舉報

9#
ID:564627 發(fā)表于 2019-6-17 15:22 | 只看該作者
一般情況是可以的
回復(fù)

使用道具 舉報

10#
ID:565126 發(fā)表于 2019-6-17 22:36 | 只看該作者
#在這里快速回復(fù)#匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。
回復(fù)

使用道具 舉報

11#
ID:565126 發(fā)表于 2019-6-17 22:37 | 只看該作者
匯編語言是一種用文字助記符來表示機(jī)器指令的符號語言,是最接近機(jī)器碼的一種語言。其主要優(yōu)點是占用資源少、程序執(zhí)行效率高。但是不同的CPU,其匯編語言可能有所差異,所以不易移植。

C語言是一種結(jié)構(gòu)化的高級語言。其優(yōu)點是可讀性好,移植容易,是普遍使用的一種計算機(jī)語言。缺點是占用資源較多,執(zhí)行效率沒有匯編高。

匯編語言是低級語言,在編寫程序的時候會把根據(jù)不同的情況指定使用不同的尋址方式,能夠?qū)?nèi)存和CPU里的通用寄存器直接操縱。不同的單片機(jī)系列會有不同的匯編語言
而C語言是高級語言,可以實現(xiàn)跨平臺。編寫程序無需指定CPU的指令執(zhí)行情況,一段程序可以在不同體系結(jié)構(gòu)的計算機(jī)上使用
回復(fù)

使用道具 舉報

12#
ID:565305 發(fā)表于 2019-6-18 09:37 | 只看該作者
準(zhǔn)確地說,不是。

因為 C 編譯器做的事情,在某些情況下你并不是非常非常了解。

在處理不可重入的快速中斷時,如果用 C 做了實現(xiàn),但是編出來的代碼如果不在匯編下檢查一下,可能這個中斷時序的性能就不夠了。如果一頭往編譯器上研究優(yōu)化,可能方向都偏了----還不如直接匯編實現(xiàn)呢
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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