c - 在内联汇编代码中插入常量的地址

标签 c inline-assembly mov

我想翻译这个函数:

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)
);

关于c - 在内联汇编代码中插入常量的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22809952/

相关文章:

visual-studio - 将 VS 转换为 GCC 内联汇编

video - 使用 ffmpeg 将带有 Alpha 的 .mov 转换为带有 alpha 的 .webm 时出现错误 "Transparency encoding with auto_alt_ref does not work"

c - 未处理的异常...读取位置访问冲突

是否需要检查 osKernalSysTick() 的环绕?

c - 我如何让 GCC 在 ah/bh/ch/dh 中放置一个字符?

linux - 为什么我的 shellcode 不起作用(在 Linux 中)?

c - 线程的段错误(核心转储)

c - C 中的结构体和函数

php - 如何使用 PHP 上传脚本将电影从 .MOV 转换为 .MP4?

asp.net - 如何在asp页面中播放/暂停wav文件