在x86_64中将寄存器内容移动到另一个寄存器中的内存地址

3

我正在使用clang进行一些内联汇编(基本上是通过使用各种参考材料来猜测),并尝试将%rdi的内容移动到由%rdx指向的地址。然而,我的语法都不起作用,比如这个:

mov %rdi, ptr %rdx

提供:

error: expected relocatable expression

有什么问题吗?在clang中,内联汇编的语法是什么来实现这个功能?谢谢。


也许那个给你的问题投反对票的人认为你的问题缺乏研究努力。除此之外,我看不出其他合法的投反对票的理由。(但是你应该将问题中的编辑内容删除,因为它不属于那里。) - Daniel Fischer
1个回答

4

我不确定clang的汇编语法具体是什么,但gcc/gas使用的AT&T语法如下:

movq %rdi, (%rdx)

Intel/Microsoft汇编语法如下:
mov qword ptr [rdx], rdi

谢谢。我在谷歌上搜索了至少50次,但是没有一个搜索结果提到这个特定的语法(括号)。我也有一些汇编语言的经验,但不太熟悉gcc风格的汇编语言,并且从未见过这种语法。 - Hannes Landeholm
1
@Hannes:我所知道的(可怕的)AT&T gas语法,都是通过查看gcc -S some-c-file.c的输出学习到的。 - Michael Burr

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接