【发布时间】:2017-02-14 10:39:18
【问题描述】:
我试图通过 gcc (gcc -c -masm=intel code.s) 将 asm 覆盖为十六进制,但错误:code.s:1: Error: too many memory references for `mov'。 code.s asm:
mov rax , 0x00000000004007E6
js rax
发生了什么?你能指导我覆盖它吗?
【问题讨论】:
-
您使用的是 Intel 语法吗? NASM 可能更适合此任务,因为它支持 Intel 语法并且可以生成原始二进制文件。 -masm=intel 是一个输出选项 AFAIK。
-
js rax看起来你使用rax作为标签,但它当然也是一个寄存器。如果它被用作标签,则mov将有两个内存引用。 -
是的,我使用英特尔代码。