当前位置: 首页 > 工具软件 > eax > 使用案例 >

关于test eax eax

董联
2023-12-01

                                            test eax eax

一般
if (a)
{
   a = 0;
}
else
{
   a++;
}

会生成
TEST EAX, EAX
JZ lb1    ;如果EAX为0则跳转到lb1
XOR EAX, EAX
RET
lb1:
INC EAX

即TEST后常用JZ, JNZ跳转指令
TEST EAX, EAX 则是将EAX与EAX进行与运算并设置标志位ZF但不把结果送回EAX

补充一下:test和and一样是进行位运算的与操作,即把eax换成二进制进行每一位的与操作,

那么当eax不为0的时候,test的结果肯定不为0,只有eax为0时才为0,于是根据位运算设置标志位,

zf的值0或非0;

转载于:https://my.oschina.net/u/3323876/blog/860529

 类似资料: