Roberto
Roberto

Reputation:

x86 inline assembler flag

Silly question, but I just can not find the necessary flag in gcc. Basically, I have in my C program the following inline assembler code

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

When compiling, I get an errormessage which says: Error: invalid char '[' beginning operand 2[timings]'`

Now I remember that a long time ago I used some kind of flag that told the compiler that it is x86 inline assembly. But cant find it online, could maybe someone please tell me which flag i have to use?

Thank you so much!

Upvotes: 1

Views: 1527

Answers (2)

foobarfuzzbizz
foobarfuzzbizz

Reputation: 58735

Try using __asm__ instead. Look here for more.

Also, try removing the \n\t from inside the assembly code.

Upvotes: -2

Adam Rosenfield
Adam Rosenfield

Reputation: 400682

You can't specify variables that way with GCC. See this document for a detailed description of how to use inline assembler. Also, keep in mind that GCC uses AT&T syntax, not Intel syntax, so you have to put your destinations on the right.

Upvotes: 6

Related Questions