新聞中心

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

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

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

簡(jiǎn)單例子:

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

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

LDR R1,#0

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

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

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

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

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

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



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

評(píng)論


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

關(guān)閉