ARM 汇编指令TST问题

TST 指令,为什么当位与结果为0时,设置eq位呢? eq位不是相等时候才设置么?
另外,比如说掩码为ox01003412 ,与操作数1做位与时,是不是每位的位与都为0是整个的位与结果才是0呢?

十分感谢!!!

tst,比较然后更改标志位,但不回写结果值。也就是说tst指令执行后除了标志位有变化外其它都无变化,映像中cmp是两值相减只改标志位,tst是两值按位与只改标志位。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-04-07
结果为0 也就是说标志z=0,也就是相等的意思,,,,,,
第2个回答  推荐于2018-03-12
TST{条件}操作数1, 操作数2
意思:将寄存器与另外一个寄存器的内容进行按位与的运算,根据结果更新CPSR中条件标志位的值。它一般用来检测是否设置了特定的位。
操作数1是被测试的数,而操作数2是一个位掩码,当位结果为0时EQ被设置。EQ位的含义是相等。
例:TST R1,#oxFFE 将寄存器R1的值与立即数相与,并根据结果设置相应的CPSR的标志位本回答被网友采纳
相似回答