从汇编视点来讲,TST和AND可以说做的是完全相同的运算,只不过TST不保存详细运算成果只判别是否为0。
简略比如:
TST
BNE
LDR
先进行and运算,假如R0的第四位不为1,则成果为零,此刻zero=1,履行下面的LDR指令;
不然,成果为1,zero=0,跳到SuspendUp处履行。
着重:
个人总结:tst 和bne连用: 先是用tst进行位与运算,然后将位与的成果与0比较,假如不为0,则跳到bne紧跟着的符号(如bne sleep,则跳到sleep处)。
着重:BEQ指令
tst 和beq连用: 先是用tst进行位与运算,然后将位与的成果与0比较,假如为0,则跳到beq紧跟着的符号(如beq delay,则跳到delay处)。