ARM汇编指令——TST和BNE、BEQ解析

来源:互联网 发布:炒股软件哪款好 编辑:程序博客网 时间:2024/06/10 04:46

从汇编角度来讲,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紧跟着的标记(如bnesleep,则跳到sleep处)。

强调:BEQ指令 是“相等或为0则跳转指令 ”,与TST搭配,应用“为0则跳转”;

tst 和beq连用: 先是用tst进行位与运算,然后将位与的结果与0比较,如果为0,则跳到beq紧跟着的标记(如beqdelay,则跳到delay处)。


0 0
原创粉丝点击