1. 程式人生 > >ARM彙編指令——TST和BNE、BEQ解析

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

從彙編角度來講,TST和AND可以說做的是完全相同的運算,只不過TST不儲存具體運算結果只判斷是否為0

簡單例子:

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處)。