c - 在内联程序集代码中插入常量的地址



我想翻译这个函数:

iowrite32(mem1, value1);

到汇编代码中。

MEM1 定义为:

int * mem1;

为了使用IOREMAP。

我写了这段代码:

asm volatile(
    "mov    %[whr],%[wht]"
    : [whr] "=r" (mem1)
    : [wht] "r" (value)
);

然后我意识到我不想将值移动到 mem1,而是移动到存储在 mem1 中的地址。如何在汇编中编写它?

您可能想看看m约束

asm volatile(
    "mov    %[wht], %[whr];"
    : [whr] "=m" (*mem1)                                                   
    : [wht] "r" (value)
);

最新更新