nixp.ru v3.0

22 октября 2017,
воскресенье,
23:57:34 MSK

DevOps с компанией «Флант»
andrew_programmer написал 29 августа 2009 года в 15:23 (1097 просмотров) Ведет себя неопределенно; открыл 6 тем в форуме, оставил 13 комментариев на сайте.

Не могу понять почему не компилируется код.Вот код.

>

int func(int x,int y)

{

int retval;

_asm_ __volatile__(

«addl %%eax,%%ebx\n\t»

:«=b»(retval)

:«a»(x),«b»(y)

:«eax»,«ebx»

);

return(retval);

}

int main()

{

int x,y,z;

x=1;

y=2;

z=func(x,y);

return(0);

}

gcc 4.3.3 выдаёт:

ошибка: не найден регистр класса ‘AREG’ для загрузки операндов ‘asm’

ошибка: ‘asm’ operand has impossible constraints

Хотя код правильный. Что не нравиться GCC?

Если _volatile_ убрать, то компилируется, а с ним никак. Хотя должно компилироваться.

andrew_programmer

Всё.Разобрался с проблемой. На другом форуме помогли.

Если кому надо будет, то вот ссылка:

http://www.ibiblio.org/gferg/ldp/GCC-Inline-Assembly-HOWTO.html