1. gzyueqian
      13424082685
      首頁 > 新聞中心 > > 正文

      在嵌入式工程中處理匯編語言的技巧

      更新時間: 2005-10-20 00:00:00來源: 粵嵌教育瀏覽量:5313

        匯編語言可以為你提供按照自己的想法隨意編寫代碼的自由,但是它卻要求必須保證每一細(xì)節(jié)的正確性。在使用匯編語言來開發(fā)嵌入式項目之前,請閱讀以下的技巧和方法。

          理解系統(tǒng)的CPU體系學(xué)習(xí)系統(tǒng)CPU文檔。深入研究特別是指令和功能,比如硬件回路,位操作,緩沖轉(zhuǎn)移,條件性執(zhí)行,循環(huán)跳躍指令,以及非通用的體系操作。

          查看地址模型。確認(rèn)你一定知道ALU標(biāo)志(零,進(jìn)位,溢出等)以及它們?nèi)绾伪籆PU體系所影響。

          查看CPU是否包含特別的影響指令工作的模型。Intel x86的32位體系的實時受保護(hù)模式可以更改CPU的操作。其他體系也包含影響算法或者地址模型的特別模式。

          理解匯編語言的語法

          在匯編語言中很少有一致性,所以你必須學(xué)會如何定義基本的東西,如標(biāo)簽,數(shù)字,字符串,變量,以及注解。

          查看你的匯編語言如何允許你將代碼分成幾個分隔的邏輯部分,這樣就可以使用linker/loader將它們放置在CPU內(nèi)存的不同區(qū)域。

          始終如一的使用寄存器和標(biāo)記

          錯誤的出現(xiàn)一般都是在寄存器發(fā)生意外崩潰的時候。例如,一個函數(shù)可以損壞使用調(diào)用函數(shù)的寄存器的內(nèi)容,或者改變一個使用中斷服務(wù)程序的寄存器。

          為了避免這些問題的產(chǎn)生,應(yīng)該建立一些協(xié)定,這些協(xié)定包括:哪些寄存器用于傳遞參數(shù)和子程序的結(jié)果,哪些寄存器可以被子程序隨意更改,哪些寄存器必須受到保護(hù)。

          還有,可以考慮使用進(jìn)位或零標(biāo)記來顯示從子程序中返回的狀態(tài),當(dāng)一個錯誤出現(xiàn)時就執(zhí)行一個額外的分支,這樣的操作就顯得很方便。

          突出多數(shù)的語法

          使用一個支持語法突出的文本編輯器。很多文本編輯器只支持一些流行的匯編語言的語法突出,比如微軟的x86 MASM格式。

          學(xué)會如何自定義語法突出,因為語法突出可以支持你所使用的CPU的匯編語言。以不同顏色顯示保留的或特別的寄存器,就可以避免很多潛在的錯誤。

          編寫注解

          作為一個通用的規(guī)則,在匯編代碼中的每一行應(yīng)該盡可能地編寫注解。每一行匯編指令的右邊的簡短注解都以英文或偽代碼來描述所要發(fā)生的事情。應(yīng)該盡可能地避免注解的過于簡單性。

          使用宏和特性

          匯編語言中的宏特性提供了用戶自定義宏的支持,自定義宏能夠減少編寫重復(fù)代碼的繁瑣。一些簡單的匯編代碼也可以支持程序指令,比如“if”,“else”,以及“for”語句。使用這些特性有助于編寫更易于維護(hù)的可靠的代碼。

          如果你沒有一個宏的匯編程序,可以考慮在運(yùn)行匯編程序之前通過一個標(biāo)準(zhǔn)的C程序來傳遞你的匯編程序代碼,但你應(yīng)該會發(fā)現(xiàn)不同的執(zhí)行之間有一些微小的不同,比如處理空格。如果C處理程序不能正常運(yùn)行,請試圖運(yùn)行GNU M4處理程序或者檢查自己的處理程序。

          遵循這些技巧有助于你在開發(fā)過程中建立更加可靠的正確的匯編代碼。

      免費(fèi)預(yù)約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 五月六月婷婷国产在线 | 色桃花亚洲天堂视频久久 | 我要看亚洲中字幕毛带 | 中文不卡AV在线播放 | 先锋国产资源不卡 | 最新久久免费网址 |