混淆x86程序集中的xor用法

时间:2014-10-30 20:04:40

标签: c assembly x86 xor

我认为xor是独占的或者可以用于 xorl %ebx %ebx可用于清除寄存器

然而,在阅读时,我遇到了xorl的不同用法并且感到困惑。 xorl 12(%ebp),%eax表示eax = x^y

在此上下文中,它用于x的取幂。这是不正确的用法?感谢。

1 个答案:

答案 0 :(得分:4)

此处^表示XOR,就像在C中使用的那样。

假设我们使用AT& T表示法,那么

xorl 12(%ebp), %eax

xor eax的值为ebp的12个字节(如果我记得我的汇编器正确的话),这通常是一个局部变量。所以,说

会更正确
eax ^= y

(假设y位于ebp+12)或

x ^= y

如果x存储在eax寄存器中。