先看下面一段一段指令
左边的eax值很明显是0,那右边的eax值是多少呢?第一反应应该不是0,否则不会做test判断(经过右边的两次sbb运算eax的值为1或者-1)
分析过程:
第一种情况cf=1
1、sbb eax,eax 结果:eax=0xFFFFFFFF(-1) cf=1
2、sbb eax,0xFFFFFFFF 结果:eax=0xFFFFFFFF(-1) cf=1
第二种情况cf=0
1、sbb eax,eax 结果:eax=0 cf=0
2、sbb eax,0xFFFFFFFF 结果:eax=1 cf=1
扫描二维码关注公众号,回复:
3489862 查看本文章
![](/qrcode.jpg)
使用OD调试修改cf值为1或0,实际运行结果和分析一致。