既然有高階語言,我們為什麼還要學組合語言?

我們都知道,電腦語言一共分為三種。

機器語言 (00111000。。。。。)

組合語言

高階語言

有的人說,組合語言的可讀性和可移植性都很差,高階語言很容易理解、相容性很好。為什麼要學組合語言而不是高階語言?

就打個形象的比喻吧!

你有一輛小轎車,在平整的公路上開60碼,自動檔。你甚至不需要了解轎車內部構造或者是離合器的工作本質,你也能把車開的很好。

但是當你的車出了問題,你得自己去修好它。這個時候你不得不面對它的構造。

既然有高階語言,我們為什麼還要學組合語言?

公路

當你理解了彙編,你想去學java這類傻瓜式語言,沒問題。

你想去學c,指標什麼你就不會再感到頭疼。

但是

,不同的場景可能也約束了你的使用方式。

現在編譯程式對 CPU 支援性都很好,

大部分不需要特別使用 Assembly 做最佳化,

編譯程式轉譯成 Assembly 產生的指令效能己經不錯,

不應該浪費長時間去撰寫,只為增加少量的效能,

直接使用高階語言開發可以把時間花費在更重要的部分,

除非是新的 CPU 有些新的指令集編譯程式還未支援,

才需要撰寫 Assembly 去開啟功能,

或是覺得有一小段程式碼需要高效能,

也可以考慮使用 inline assembly 撰寫於高階語言中,

學習撰寫 Assembly 是必要的,

但真正在寫程式碼時,要懂得軟體效能和開發時間的取捨才是正道。