флаг встроенного ассемблера x86 - PullRequest
1 голос
/ 23 июня 2009

Глупый вопрос, но я просто не могу найти нужный флаг в gcc. По сути, в моей C-программе есть следующий встроенный ассемблерный код

__asm__ __volatile__ ("lea ebx, [timings] \n\t");

При компиляции я получаю сообщение об ошибке, которое гласит: Error: invalid char '[' beginning operand 2 [тайминги] '`

Теперь я помню, что давным-давно я использовал какой-то флаг, который сообщал компилятору, что это встроенная сборка x86. Но не могу найти его в Интернете, может, кто-нибудь скажет, пожалуйста, какой флаг мне использовать?

Большое спасибо!

Ответы [ 2 ]

6 голосов
/ 23 июня 2009

Вы не можете указывать переменные таким образом с GCC. См. этот документ для подробного описания того, как использовать встроенный ассемблер. Кроме того, имейте в виду, что в GCC используется синтаксис AT & T, а не синтаксис Intel, поэтому вы должны правильно указать пункты назначения.

0 голосов
/ 23 июня 2009

Попробуйте использовать __asm__ вместо этого. Смотрите здесь для более.

Также попробуйте удалить \ n \ t из кода сборки.

...