在clang中进行一些内联汇编(基本上通过使用各种引用猜测我的方式),并且我试图将%rdi
的内容移动到%rdx
指向的地址。但是没有我的语法的工作,这样的:在x86_64的另一个寄存器中将寄存器内容移动到另一个寄存器中的内存地址
mov %rdi, ptr %rdx
给出:
error: expected relocatable expression
有什么不对? clang中的内联程序集中的语法是什么?谢谢。
在clang中进行一些内联汇编(基本上通过使用各种引用猜测我的方式),并且我试图将%rdi
的内容移动到%rdx
指向的地址。但是没有我的语法的工作,这样的:在x86_64的另一个寄存器中将寄存器内容移动到另一个寄存器中的内存地址
mov %rdi, ptr %rdx
给出:
error: expected relocatable expression
有什么不对? clang中的内联程序集中的语法是什么?谢谢。
我不知道是什么铛的汇编语法可能正是,但AT GCC使用& T语法/气体将是:
movq %rdi, (%rdx)
英特尔/微软汇编语法是:
mov qword ptr [rdx], rdi
谢谢。我在谷歌搜索了至少50次,不知何故我的搜索没有提出这个特定的语法(括号)。我也用汇编工作了一下,但没有用gcc风格,也从来没有见过这个。 –
@Hannes:我所知道的有关(可怕的)AT&T气体语法的一切,我通过查看'gcc -S some-c-file.c'的输出得知。 –
也许downvoter认为你的问题缺乏研究努力。除此之外,我看不到一个合理的downvote原因。 (但你应该从你的问题中删除该编辑,它不属于那里。) –