能力值:
( LV2,RANK:10 )
|
-
-
2 楼
自己总结出来了,用CMP指令作比较首先要明确是对有符号数做比较、还是对无符号数做比较、还是对数据做比较(数据可能不是数值而具有其他的意义)
1.对符号数的比较A和B
如果OF=0,表示数据没有溢出,那么可很明确的判断
ZF=1时,A=B。
ZF=0时,A不等于B,这是有两种情况
SF=1,那么A<B。
SF=0,那么A>B
如果OF=1,表示数据溢出,可能的情况是A与B异号,有两种情况
SF=1时,A>B
SF=0时,A<B
即,结果为负溢出必为正,结果为正溢出必为负
2.对无符号数的比较A和B
对无符号数的比较不能用SF标志(254和1比较),SF=1可结果应该是A>B,其实无符号数的比较更简单,只要判断CF就可以了
ZF=1,CF=0 A=B
ZF=0,CF=0 A>B
ZF=0,CF=1 A<B
3.对数据做比较是无法比较大小的,因为它的意义不确定,只能比较是否是相等。
ZF=0,A不等于B
ZF=1,A=B
|
|
|