Я начинаю с ассемблера под 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)
Разрешение:
См. Принятый ответ - кажется, что предложение "изменено" больше не поддерживается.