【发布时间】:2013-10-29 21:13:31
【问题描述】:
我有一个关于在 c 和内联汇编之间传递参数的问题
我无法将数组传递到我的内联程序集中。我不断收到错误“错误:内存输入 1 不可直接寻址”
这是我的代码示例:
void main()
{
char name[] = "thisisatest";
__asm__ ("\
.intel_syntax noprefix \n\
mov eax, %[name] \n\
inc (eax) \n\
"
:/*no output*/
:[name]"m"(name)
);
}
这应该增加我的字符串的第一个字母(使其成为'u'),但它不会构建。
想法?
【问题讨论】:
-
该代码甚至无法编译。你能举一个真实的例子吗?
-
我知道它不会编译,这就是我寻求帮助的原因
-
不同的编译器对内联汇编有不同的支持和语法——如果你说明你正在使用的编译器会有所帮助。
标签: c++ c x86 inline-assembly