在Shellcoder's Handbook: Discovering and Exploiting Security Holes中,我找到了这个C
代码示例之间的比较:
int number;
if (number<0)
{
...more code...
}
及其编译的assembly
代码(IA 32架构):
number dw 0
mov eax,number
or eax,eax
jge label
<no>
label :<yes>
or eax,eax
命令的目的是什么?不应该是comp eax,0
吗?
答案 0 :(得分:1)
这种自我比较用于设置标志值。 x86指令集通常具有执行相同操作的等效方法。