新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM匯編 控制偽指令之一

        ARM匯編 控制偽指令之一

        作者: 時間:2016-11-09 來源:網絡 收藏
        匯編控制偽指令用于控制匯編程序的執行流程,常用的匯編控制偽指令包括以下幾條:
        — IF 、 ELSE 、 ENDIF
        — WHILE 、 WEND
        — MACRO 、 MEND
        — MEXIT
        1、 IF、ELSE、ENDIF
        語法格式:
        IF 邏輯表達式
        指令序列 1
        ELSE
        指令序列 2
        ENDIF
        IF 、 ELSE 、 ENDIF 偽指令能根據條件的成立與否決定是否執行某個指令序列。當 IF 后面的邏輯表
        達式為真,則執行指令序列 1 ,否則執行指令序列 2 。其中, ELSE 及指令序列 2 可以沒有,此時,當
        IF 后面的邏輯表達式為真,則執行指令序列 1 ,否則繼續執行后面的指令。
        IF 、 ELSE 、 ENDIF 偽指令可以嵌套使用。
        使用示例:
        GBLL Test ;聲明一個全局的邏輯變量,變量名為 Test……
        IF Test = TRUE
        指令序列 1
        ELSE
        指令序列 2
        ENDIF
        2、 WHILE、WEND
        語法格式:
        WHILE 邏輯表達式
        指令序列
        WEND
        WHILE 、 WEND 偽指令能根據條件的成立與否決定是否循環執行某個指令序列。當 WHILE 后面的邏輯
        表達式為真,則執行指令序列,該指令序列執行完畢后,再判斷邏輯表達式的值,若為真則繼續執行,一直
        到邏輯表達式的值為假。
        WHILE 、 WEND偽指令可以嵌套使用。
        使用示例:
        GBLA Counter ;聲明一個全局的數學變量,變量名為 Counter
        Counter SETA 3 ;由變量Counter 控制循環次數
        ……
        WHILE Counter 10
        指令序列
        WEND
        3、 MACRO、MEND
        語法格式:
        $ 標號 宏名 $ 參數 1 , $ 參數 2 ,……
        指令序列
        MEND
        MACRO 、 MEND 偽指令可以將一段代碼定義為一個整體,稱為宏指令,然后就可以在程序中通過宏指令
        多次調用該段代碼。其中, $ 標號在宏指令被展開時,標號會被替換為用戶定義的符號, 宏指令可以使用
        一個或多個參數,當宏指令被展開時,這些參數被相應的值替換。
        宏指令的使用方式和功能與子程序有些相似,子程序可以提供模塊化的程序設計、節省存儲空間并提高
        運行速度。但在使用子程序結構時需要保護現場,從而增加了系統的開銷,因此,在代碼較短且需要傳遞的
        參數較多時,可以使用宏指令代替子程序。
        包含在 MACRO 和 MEND 之間的指令序列稱為宏定義體,在宏定義體的第一行應聲明宏的原型(包含宏
        名、所需的參數),然后就可以在匯編程序中通過宏名來調用該指令序列。在源程序被編譯時,匯編器將宏
        調用展開,用宏定義中的指令序列代替程序中的宏調用,并將實際參數的值傳遞給宏定義中的形式參數。
        MACRO 、 MEND 偽指令可以嵌套使用。
        4、 MEXIT
        語法格式:
        MEXIT
        MEXIT 用于從宏定義中跳轉出去。



        關鍵詞: ARM匯編偽指

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 博湖县| 台江县| 南宫市| 枝江市| 当涂县| 边坝县| 桃源县| 加查县| 东宁县| 翁源县| 错那县| 道真| 行唐县| 方山县| 阜南县| 进贤县| 鄂州市| 林州市| 资兴市| 建湖县| 云和县| 西青区| 错那县| 金阳县| 上饶县| 冀州市| 屏东县| 邓州市| 手游| 紫金县| 饶阳县| 普宁市| 兴隆县| 沂南县| 涿鹿县| 永新县| 白河县| 河北区| 鄂伦春自治旗| 唐山市| 博野县|