|
彙編語言是一種用文字助記符來表示機器指令的符號語言,是最接近機器碼的一種語言。其主要優點是占用資源少、程序執行效率高。但是不同的CPU,其彙編語言可能有所差異,所以不易移植。
對於目前普遍使用的RISC架構的8bitMCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯後,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而彙編語言,一條指令就對應一個機器碼,每一步執行什麼動作都很清楚,並且程序大小和堆棧調用情況都容易控製,調試起來也比較方便。所以在資源較少單片機開發中,我們還是建議采用彙編語言比較好。
而C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,並具備彙編語言的功能。C語言有功能豐富的庫函數、運算速度快、編譯效率高、有良好的可移植性,而且可以直接實現對係統硬件的控製。C語言是一種結構化程序設計語言,它支持當前程序設計中廣泛采用的由頂向下結構化程序設計技術。此外,C語言程序具有完善的模塊程序結構,從而為軟件開發中采用模塊化程序設計方法提供了有力的保障。因此,使用C語言進行程序設計已成為軟件開發的一個主流。用C語言來編寫目標係統軟件,會大大縮短開發周期,且明顯地增加軟件的可讀性,便於改進和擴充,從而研製出規模更大、性能更完備的係統。
對於目前普遍使用的RISC架構的8bitMCU來說,其內部ROM、RAM、STACK等資源都有限,如果使用C語言編寫,一條C語言指令編譯後,會變成很多條機器碼,很容易出現ROM空間不夠、堆棧溢出等問題。而且一些單片機廠家也不一定能提供C編譯器。而彙編語言,一條指令就對應一個機器碼,每一步執行什幺動作都很清楚,並且程序大小和堆棧調用情況都容易控製,調試起來也比較方便。所以在單片機開發中,我們還是建議采用彙編語言比較好。
對於複雜而開發時間緊的項目時,可以采用C語言,但前提是要求對該MCU係統的C語言和C編譯器非常熟悉,特別要注意該C編譯係統所能支持的數據類型和算法。雖然C語言是最普遍的一種高級語言,但不同的MCU廠家其C語言編譯係統是有所差別的,特別是在一些特殊功能模塊的操作上。如果對這些特性不了解,那調試起來就有的煩了,到頭來可能還不如用彙編來的快。
|
|