我可以将 asm 函数与 c - 字符串变量而不是字符串文字作为参数一起使用吗? [复制]

Posted

技术标签:

【中文标题】我可以将 asm 函数与 c - 字符串变量而不是字符串文字作为参数一起使用吗? [复制]【英文标题】:Can I use asm function with a c - string variable instead of a string literal as an argument? [duplicate] 【发布时间】:2011-09-28 10:28:35 【问题描述】:

我做了这样的事情:

char command [] = "一些汇编代码";

asm volatile(命令);

它没有工作。具体来说,我收到以下错误: Expected string literal before command.

那么,我只能将字符串文字与 C 内联汇编一起使用吗?我真的希望能够使用像上面这样的字符串变量。我怎样才能达到这个效果?

【问题讨论】:

将文本写入文件并system() 带有该文件的汇编程序。 也相关:C/C++ inline assembler with instructions in string variables 用于同一问题的 MSVC 语法版本(具有相同的答案) 【参考方案1】:

据我所知,asm 代码片段是在编译阶段而不是运行时内联的。这意味着你不能做你正在做的事情。

按照pmg的建议,您可以通过调用外部命令来完成,但这意味着用户需要安装所有工具。

【讨论】:

以上是关于我可以将 asm 函数与 c - 字符串变量而不是字符串文字作为参数一起使用吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将变量传递给外部汇编函数

x64 asm如何将函数指针设置为_cdecl C函数并调用它?

C++/ASM:按值传递使用 xmm0,但通过引用使用 rdi

谁来教我C++里ASM函数

使用C程序编译ASM文件的命令[重复]

C语言各个数据类型取值范围