新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > ARM匯編指令——TST和BNE、BEQ解析

        ARM匯編指令——TST和BNE、BEQ解析

        作者: 時間:2016-11-21 來源:網絡 收藏
        從匯編角度來講,TST和AND可以說做的是完全相同的運算,只不過TST不保存具體運算結果只判斷是否為0。

        簡單例子:

        本文引用地址:http://www.104case.com/article/201611/319526.htm

        TST R0, #0x8 ; 測試bit_3是否為0
        BNE SuspendUp ; BNE指令是“不相等或不為0跳轉指令”:

        LDR R1,#0

        先進行and運算,如果R0的第四位不為1,則結果為零,此時zero=1,執行下面的LDR指令;

        否則,結果為1,zero=0,跳到SuspendUp處執行。

        強調:BNE指令是“不相等或不為0則跳轉指令”,與TST搭配,應用“不為0則跳轉”;

        個人總結:tst 和bne連用: 先是用tst進行位與運算,然后將位與的結果與0比較,如果不為0,則跳到bne緊跟著的標記(如bne sleep,則跳到sleep處)。

        強調:BEQ指令是“相等或為0則跳轉指令”,與TST搭配,應用“為0則跳轉”;

        tst 和beq連用: 先是用tst進行位與運算,然后將位與的結果與0比較,如果為0,則跳到beq緊跟著的標記(如beq delay,則跳到delay處)。



        關鍵詞: ARM匯編指TSTBNEBE

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 公主岭市| 手游| 台前县| 平泉县| 松江区| 德令哈市| 印江| 福安市| 达尔| 镇平县| 陇西县| 鹤峰县| 凤山县| 龙游县| 和平县| 马山县| 留坝县| 辽阳市| 德庆县| 剑阁县| 日土县| 新闻| 陇西县| 武功县| 中江县| 正阳县| 江陵县| 富裕县| 个旧市| 桃江县| 河间市| 邵阳市| 日照市| 榆社县| 那曲县| 永吉县| 宁津县| 隆子县| 滨海县| 新郑市| 临澧县|