条件码:
①OF(Overflow Flag)溢出标志,溢出时为1,否则置0.标明一个溢出了的计算,如:结构和目标不匹配.
②SF(Sign Flag)符号标志,结果为负时置1,否则置0.
③ZF(Zero Flag)零标志,运算结果为0时置1,否则置0.
④CF(Carry Flag)进位标志,进位时置1,否则置0.注意:Carry标志中存放计算后最右的位.
⑤AF(Auxiliary carry Flag)辅助进位标志,记录运算时第3位(半个字节)产生的进位置。
有进位时1,否则置0.
⑥PF(Parity Flag)奇偶标志.结果操作数中1的个数为偶数时置1,否则置0.
控制标志位:
⑦DF(Direction Flag)方向标志,在串处理指令中控制信息的方向。
⑧IF(Interrupt Flag)中断标志。
⑨TF(Trap Flag)陷井标志。
test eax. eax
将2操作数做与操作。(如果eax值为0,则Z标志位置1)(test逻辑与运算结果为零,就把ZF(零标志)置1;)
cmp opr, src
实质是对2操作数相减,改变标志位ZF。opr==src则,ZF=0 (cmp 算术减法运算结果为零,就把ZF(零标志)置1)
所有函数或过程调用后的返回值都是存放在EAX中
00400000到00401000存储的是PE文件的文件头(包括MOS头在内的各种乱七八糟的头)
test eax eax ;eax为0,设置ZF=1,否则为0