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

标签 c assembly clang

在 clang 中做一些内联汇编(基本上是通过使用各种引用来猜测我的方式),我试图将 %rdi 的内容移动到 %rdx 指向的地址。但是我的语法都不起作用,这个:

mov %rdi, ptr %rdx

给出:

error: expected relocatable expression

怎么了? clang 中内联汇编的语法是什么?谢谢。

最佳答案

我不知道 clang 的汇编语法到底是什么,但 gcc/gas 使用的 AT&T 语法是:

movq %rdi, (%rdx)

Intel/Microsoft 汇编语法为:

mov qword ptr [rdx], rdi

关于c - 将寄存器内容移动到 x86_64 中另一个寄存器中的内存地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12591409/

相关文章:

assembly - 处理中断和使用 WFI risc-v cpu 指令的预期/正确方法是什么?

c++ - 如何在 OSX 上尝试新的 `<execution>` header ?

c - C 中 .h 文件的问题

不应该循环的代码(带 fork )正在循环

c - 访问使用 malloc 初始化的数组时出现段错误

c++ - 重复整数除以运行时常量值

assembly - 添加彩色文本(我的自定义 MBR)

gcc - 使用特定的 gcc 工具链从源代码构建 clang

c++ - 正则表达式值到字符串

c - 如何使用以及何时在 C 中使用 memmove?