新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > ARM匯編指令——TST和BNE、BEQ解析

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

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

簡單例子:

本文引用地址:http://m.butianyuan.cn/article/201611/319526.htm

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

LDR R1,#0

先進(jìn)行and運算,如果R0的第四位不為1,則結(jié)果為零,此時zero=1,執(zhí)行下面的LDR指令;

否則,結(jié)果為1,zero=0,跳到SuspendUp處執(zhí)行。

強調(diào):BNE指令是“不相等或不為0則跳轉(zhuǎn)指令”,與TST搭配,應(yīng)用“不為0則跳轉(zhuǎn)”;

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

強調(diào):BEQ指令是“相等或為0則跳轉(zhuǎn)指令”,與TST搭配,應(yīng)用“為0則跳轉(zhuǎn)”;

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



關(guān)鍵詞: ARM匯編指TSTBNEBE

評論


技術(shù)專區(qū)

關(guān)閉