CMP对标志位的影响

CMP指令的格式为 CMP op1 op2 用到的标志位有CF,ZF,OF,SF四个
     对于两个无符号数的情况,两数相减不可能溢出了,看CFZF标志位就可以,如果ZF1,说明结果是0,那不用说,两数相等了(有符号数也是这样),如果ZF0,则如果CF1,表示有借位,op1<op2,否则op1>op2
     对于有符号数,就要看符号标志位SF和溢出标志位OF了,如果是两个同号的数,两数相减也是不可能溢出的,OF一定为0,此时,如果SF1,则表示op1<op2,否则op1>op2,如果是两个异号的数相减,不溢出的情况跟上面的一样(OF==0SF==1?op1<op2:op1>op2)。
      如果溢出了,则要分析一下,此时OF=1表示溢出,如果SF也为1,表示结果为负数,假设op1为负数,op2正数,相减的结果为负数,没溢出,假设不成立,op1是整数,op2是负数,所以op1>op2SF0的情况可以同样分析可得op1<op2


test逻辑与运算结果为零,就把ZF(零标志)1; 
cmp 算术减法运算结果为零,就把ZF(零标志)1