我从 Linux 下的汇编程序开始。我已将以下代码保存为 testasm.c
并使用以下代码对其进行编译: gcc testasm.c -otestasm
编译器回复:“'asm' 中的不可能约束”。
#include <stdio.h>
int main(void)
{
int foo=10,bar=15;
__asm__ __volatile__ ("addl %%ebx,%%eax"
: "=eax"(foo)
: "eax"(foo), "ebx"(bar)
: "eax"
);
printf("foo = %d", foo);
return 0;
}
我该如何解决这个问题?(我从这里复制了这个例子。)
Debian Lenny,内核 2.6.26-2-amd64
gcc 版本 4.3.2 (Debian 4.3.2-1.1)
解决方案:
查看接受的答案 - 似乎不再支持“修改”子句。