Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The two keywords behave the same. The keyword asm is not available in ISO C programs, so if you want compatibility with those, you should use the alternate keyword __asm__. See Alternate Keywords in the GCC manual for details.

volatile vs __volatile__
Panel
titleWarning: Misinformation on Sandeep.S's GCC-Inline-Assembly-HOWTO

This otherwise useful howto claims the following:

If our assembly statement must execute where we put it, (i.e. must not be moved out of a loop as an optimization), put the keyword volatile after asm and before the ()'s. So to keep it from moving, deleting and all...

However, this contradicts the gcc manual, which clearly states that the volatile keyword on asm statements will not stop the compiler from moving the asm instructions, including across jump instructions (see Extended Asm in the GCC manual).

Clobbers memory

Volatile keyword elsewhere

...