使用"或"来自编译的C代码的程序集if-statement中的助记符

时间:2018-01-04 21:30:45

标签: c assembly x86

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吗?

1 个答案:

答案 0 :(得分:1)

这种自我比较用于设置标志值。 x86指令集通常具有执行相同操作的等效方法。