首页 > 解决方案 > 如何将 C 中变量的值传递给内联汇编中指令的参数?

问题描述

我正在尝试使用我在 C 中声明的变量的值作为汇编中 mov 指令的参数。我试过使用这样的转换字符(其中 ptr 是变量):

asm("mov x9, %p\n\t" : : "r"(ptr));

但它不会编译并输出以下错误:

error: invalid % escape in inline assembly string
            asm("mov x9, %p\n\t" : : "r"(ptr));
                ~~~~~~~~~~~^~~~~

我也试过没有 \n\t 并且它给出了同样的错误。它并没有具体说明它有什么问题,所以我不知道如何处理这个问题。我怎样才能让它以不同的方式编译或实现相同的结果?

标签: cinline-assembly

解决方案


推荐阅读