組合語言 與 C語言

現在..控制器的容量越作越大...

軟體的Compiler能力也越來越強...

是不是代表只會寫組合語言的人也該學C了?

必學C是不是一種趨勢?只會寫組合語言是不是很不吃香?

組合語言的好處在於容量小時,非常好控制程式的大小

而C受限於Compiler能力的問題,通常程式都會比組合語言寫出來的大

為了成本,所以使用組合語言,可是漸漸的這問題好像會慢慢的消失

最近就因為公司要投入新的控制器,容量大,功能多...整合性強

但是我卻發現,只會寫組合語言的我卻不被看好

反而大家都把重心放在只會寫C的那個人身上...

雖然只是助理而已,但也是很默默的在努力...

我依然很喜歡用組合語言...雖然他維護起來真的比較累

但我覺得Assembly比C來說感覺更藝術...更能貼近控制器

組合語言跟C比起來...對於未來的發展到底還有什麼存在的價值?


Microchip Taiwan - 討論區 - 綜合應用 - 組合語言 與 C語言

4 thoughts on “組合語言 與 C語言

  1. HI 版主
    看了你的感想,之前我也跟你有一樣的想法
    小弟我也是從組言轉成寫c的
    感覺大家都覺得c才是唯一語言
    不過我可是很自豪我是會寫組語的少數稀有品種
    換個角度想,懂了組語再看寫c
    我們知道很多記憶體擺放方式
    資料傳送,轉換的底層動作
    這些可是只會寫c不知道的地方
    不多說了,多多互相加油吧

  2. Hi Scott,

    感謝您的響應,
    其實現在市場上會應用組合語言的人就我遇到是真的不多
    其原因有兩點,現在32bit的MCU越來越廣泛,應用也越來越複雜
    例如很多時候的控制都不是只有單純的一些I/O控制,
    卻都包含了很多大量的運算,此時C語言的優勢就很明顯了
    再者,當系統越來越龐大的時候,甚至需要加入RTOS時,
    如果只有組合語言可能是programmer難以負擔的壓力,
    總之,市場的導向不可能消滅組合語言,
    但是C語言已成為開發工具的主流已是事實,例如像
    Cypress公司在PSOC1系列依然還支援用組合語言開發
    但是到了PSoC3,5時開發工具已不完整支援組合語言

    強化C語言的coding能力是必須的!一起共勉之!

  3. 版主你好.看到您這篇有感而發.我已54歲(至2020年),從24-5歲開始從8031->8048->PIC->8052->EMC的類PIC(從447->F688用最久因為便宜).從極簡單的騙人玩意到物連網(IoT)的設備..我已把組合語言寫成模組化.所以後期寫組合語言大部分都是複製貼上.加上查表取數據來驅動各個模組.所以方便很多....但是有極限..是我的年齡..Orz ..組合語言完成套數也有個4-500套以上.
    樓上 Sccot說得沒錯.尤其組合語言對於所有元件的波形操作都必須真的瞭解才能穩定長時間的工作.讓一顆20MHz的弱小8bits CPU發揮到極致
    但是我這段時間(2020年)也不得不使用C來撰寫.(真不知這麼老了還學個屁.內心一直有恐懼感怕反應及學習能力退化及不足)
    CPU也放棄了 由13-16bits單周期指令RISC架構改轉ARM
    對我而言最重要的是近期的ARM架構可以很省電的Standby及可大幅調整工作頻率範圍.可以很適當的調整整體的功耗條件.所以才放棄了 8 bits CPU.
    ARM 光 init special register 是夠嗆的..我認為我做不到.直在太複雜了 真的無法"裸奔(不跑Lib)只好開始學C,至少Keil C還支援組合語言的部分.
    真得不好意思在你這裡發牢騷..因為看到感同身受的文字格外感到唏噓.....

    僅祝 日安 身體健康

  4. 先進您好,

    想不到十年前的文章如今還能得到回應,小弟感到欣慰,對於前輩的突破,我覺得是相當值得肯定的,畢竟學習一個新的語言,真的是跟養烏龜一樣,是一輩子的事情(呵呵...),曾經我也是有過一段要命的心態過渡期,但在這十年間,也因為C語言,讓我接觸很多不同廠牌的MCU,也因為習過組合語言,對於MCU暫存器的內容熟悉上也比剛入門來的快很多,C的lib的強大有時候是用過就回不去的了,但是組合語言的精神觀念在我工作上還是有很深厚的連結。

    無論如何,有幸讓先進來這裡牢騷,小弟我也很開心喔

    感謝您。

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步瞭解 Akismet 如何處理網站訪客的留言資料