LINUX.ORG.RU

gcc inline assembler


0

0

Как в gcc inline assembler использовать локальную С переменную? Пример: int main (void) { int i=1; asm("movl i, %eax"); ... } Компилятор выдает "Undefined reference to 'i'". Если i глобальная, то все работает.

anonymous

http://gcc.gnu.org/onlinedocs/gcc-3.0.3/gcc_5.html#SEC103

asm ("movl %0, %eax" : : "g" (i));

Но если тебе просто нужно, чтобы i было в eax, то лучше написать "a" (i). Если надо, чтобы i было в регистре (eax, ebx, ecx, edx, esi, edi), то можно писать "r" (i), ну и так далее, см. ссылку.

justme
()

justme: поделись плиз какой-нить полноценной ссылкой на подобную инфу по этим "a" "g" итд... а-то в .info не густо как-то :(

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.