ARM 汇编指令TST问题

TST 指令,为什么当位与结果为0时,设置eq位呢? eq位不是相等时候才设置么?

比如111111和000000位与结果是0,设置EQ(Z=1),那它们相等吗?

eq 应当称为“判断的条件”,而把 Z 标志位称为“eq”位是不恰当。
Z 标志(和其它标志位)能被算术指令(包括加减乘除和比较)和逻辑指令(位运算指令和移位指令)改变,当需要判断“eq”时,上一条影响 Z 标志的指令,应该是减法或比较指令,而不应该是其它的指令,比如:
算术运算:加法——两个数相加结果为 0,不能使用 eq 判断两数相等。
逻辑运算:移位——一个数移位结果为 0,这个与 eq 什么都无从谈起。
还有你问题里的 TST 指令,也和 eq 扯不上关系。

不知题主明白没有?如果还有疑问请继续追问,如果满意请采纳,谢谢。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-05
TST指令是用2数相减来判断的。
相似回答