比较两个参数ASM x64

时间:2012-03-25 17:05:46

标签: assembly compare arguments 64-bit cmp

有人可以告诉我如何在ASM x64中比较两个参数(RDIRSI)吗?

我使用时遇到编译问题:

cmp byte[rdi+rax],byte[rsi+rax]

我收到了一个错误:

"error: invalid combination of opcode and operands"

1 个答案:

答案 0 :(得分:4)

与大多数x86 / x86-64指令一样,

cmp指令最多允许一个内存操作数。因此,要比较两个内存位置的内容,您需要将其中至少一个加载到寄存器中:

mov cl, byte[rdi+rax]
cmp cl, byte[rsi+rax]