打印

[转帖] TEST指令解释

TEST指令解释

我无法解释得那么全面,只知道TEST EAX,EAX 判断EAX有无数据,有数据,则JNZ跳...看到看雪上有更好的文章,就转载了下.
TEST - Test For Bit Pattern
//位测试指令
        Usage:  TEST    dest,src
//用法:TEST dest,src
        Modifies flags: CF OF PF SF ZF (AF undefined)
//受影响的标志位有:
//你要注意的是这一部位才对。你上面的指令test eax,eax后面跟着的是jnz指令,jnz指令作用于零标志位的,若零标志位不为零则跳,所以test eax,eax是测试eax是否为零的指令,若eax有数据,不管是什么数据(111也好,101也好),jnz都会跳。
//更新一下,若eax有数据,不管是111也好,222也好,只要他们两个操作数作逻辑与运算之后,结果不为零,则jnz都会跳。而jz则不跳。
CF //进位标志,主要作用于JC/JNC指令。
OF //溢出标志,主要作用于JO/JNO指令
PF //奇偶标志,主要作用于JP/JPE/JNP/JPO指令
SF //符号标志,主要作用于JS/JNS指令
ZF //零标志,主要作用于JZ/JE/JNZ/JNE指令
AF //辅助进位标志,不过未定义。
        Performs a logical AND of the two operands updating the flags
//执行两个操作数的逻辑与运算,并更新标志位。
        register without saving the result.
//该操作只修改标志位,不保留运算结果值。
本帖最近评分记录
  • 小3 金币 +1 给点例子出来~~ 2007-5-17 11:05
CRACK      ME

TOP

Processed in 0.041820 second(s), 6 queries, Gzip enabled.