匯編語言可以為你提供按照自己的想法隨意編寫代碼的自由,但是它卻要求必須保證每一細節的正確性。在使用匯編語言來開發嵌入式項目之前,請閱讀以下的技巧和方法。
理解系統的CPU體系學習系統CPU文檔。深入研究特別是指令和功能,比如硬件回路,位操作,緩沖轉移,條件性執行,循環跳躍指令,以及非通用的體系操作。
查看地址模型。確認你一定知道ALU標志(零,進位,溢出等)以及它們如何被CPU體系所影響。
查看CPU是否包含特別的影響指令工作的模型。Intel x86的32位體系的實時受保護模式可以更改CPU的操作。其他體系也包含影響算法或者地址模型的特別模式。
理解匯編語言的語法
在匯編語言中很少有一致性,所以你必須學會如何定義基本的東西,如標簽,數字,字符串,變量,以及注解。
查看你的匯編語言如何允許你將代碼分成幾個分隔的邏輯部分,這樣就可以使用linker/loader將它們放置在CPU內存的不同區域。
始終如一的使用寄存器和標記
錯誤的出現一般都是在寄存器發生意外崩潰的時候。例如,一個函數可以損壞使用調用函數的寄存器的內容,或者改變一個使用中斷服務程序的寄存器。
為了避免這些問題的產生,應該建立一些協定,這些協定包括:哪些寄存器用于傳遞參數和子程序的結果,哪些寄存器可以被子程序隨意更改,哪些寄存器必須受到保護。
還有,可以考慮使用進位或零標記來顯示從子程序中返回的狀態,當一個錯誤出現時就執行一個額外的分支,這樣的操作就顯得很方便。
突出多數的語法
使用一個支持語法突出的文本編輯器。很多文本編輯器只支持一些流行的匯編語言的語法突出,比如微軟的x86 MASM格式。
學會如何自定義語法突出,因為語法突出可以支持你所使用的CPU的匯編語言。以不同顏色顯示保留的或特別的寄存器,就可以避免很多潛在的錯誤。
編寫注解
作為一個通用的規則,在匯編代碼中的每一行應該盡可能地編寫注解。每一行匯編指令的右邊的簡短注解都以英文或偽代碼來描述所要發生的事情。應該盡可能地避免注解的過于簡單性。
使用宏和特性
匯編語言中的宏特性提供了用戶自定義宏的支持,自定義宏能夠減少編寫重復代碼的繁瑣。一些簡單的匯編代碼也可以支持程序指令,比如“if”,“else”,以及“for”語句。使用這些特性有助于編寫更易于維護的可靠的代碼。
如果你沒有一個宏的匯編程序,可以考慮在運行匯編程序之前通過一個標準的C程序來傳遞你的匯編程序代碼,但你應該會發現不同的執行之間有一些微小的不同,比如處理空格。如果C處理程序不能正常運行,請試圖運行GNU M4處理程序或者檢查自己的處理程序。
遵循這些技巧有助于你在開發過程中建立更加可靠的正確的匯編代碼。
在嵌入式工程中處理匯編語言的技巧
更新時間: 2005-10-20 00:00:00來源: 粵嵌教育瀏覽量:4952