`test`指令有什么作用?

时间:2011-05-14 13:20:27

标签: assembly x86

我正在查看一些小的汇编代码,我无法理解TEST指令及其用法。我在循环结束时查看以下代码:

8048531:    84 c0                   test   al,al
8048533:    75 dc                   jne    8048511 <function+0x2d>

我理解TEST的方式是它有点像AND运算符,它设置了一些标志。我想我真的不明白旗帜是如何运作的。对我来说test al,al看起来像检查相同的低位并且总是得到相同的结果。

有人可以解释一下吗?

1 个答案:

答案 0 :(得分:16)

它自己测试寄存器,只是为了设置标志。对于零和非零值,结果将不同。