2012-09-25 56 views
3

在clang中进行一些内联​​汇编(基本上通过使用各种引用猜测我的方式),并且我试图将%rdi的内容移动到%rdx指向的地址。但是没有我的语法的工作,这样的:在x86_64的另一个寄存器中将寄存器内容移动到另一个寄存器中的内存地址

mov %rdi, ptr %rdx 

给出:

error: expected relocatable expression 

有什么不对? clang中的内联程序集中的语法是什么?谢谢。

+0

也许downvoter认为你的问题缺乏研究努力。除此之外,我看不到一个合理的downvote原因。 (但你应该从你的问题中删除该编辑,它不属于那里。) –

回答

4

我不知道是什么铛的汇编语法可能正是,但AT GCC使用& T语法/气体将是:

movq %rdi, (%rdx) 

英特尔/微软汇编语法是:

mov qword ptr [rdx], rdi 
+0

谢谢。我在谷歌搜索了至少50次,不知何故我的搜索没有提出这个特定的语法(括号)。我也用汇编工作了一下,但没有用gcc风格,也从来没有见过这个。 –

+1

@Hannes:我所知道的有关(可怕的)AT&T气体语法的一切,我通过查看'gcc -S some-c-file.c'的输出得知。 –