新聞中心

        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

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 铁力市| 泸溪县| 射洪县| 兰溪市| 招远市| 长宁县| 信宜市| 都匀市| 秭归县| 翁源县| 绍兴县| 红桥区| 衡阳县| 板桥市| 射洪县| 黑河市| 安仁县| 沙田区| 古田县| 邻水| 镶黄旗| 南昌县| 奈曼旗| 鲁山县| 柞水县| 新巴尔虎右旗| 香河县| 连平县| 高要市| 柘城县| 新龙县| 饶平县| 龙山县| 邵阳市| 依安县| 抚松县| 临泽县| 云霄县| 商丘市| 石景山区| 辛集市|