Next: Syntax Extensions, Previous: Volatiles, Up: C Extensions [Contents][Index]
The asm keyword allows you to embed assembler instructions within C code. GCC provides two forms of inline asm statements. A basic asm statement is one with no operands (see Basic Asm), while an extended asm statement (see Extended Asm) includes one or more operands. The extended form is preferred for mixing C and assembly language within a function and can be used at top level as well with certain restrictions.
You can also use the asm keyword to override the assembler name for a C symbol, or to place a C variable in a specific register.
| Basic Asm: | Inline assembler without operands. | |
| Extended Asm: | Inline assembler with operands. | |
| Constraints: | Constraints for asm operands |
|
| Asm constexprs: | C++11 constant expressions instead of string literals. | |
| Asm Labels: | Specifying the assembler name to use for a C symbol. | |
| Explicit Register Variables: | Defining variables residing in specified registers. | |
| Size of an asm: | How GCC calculates the size of an asm block. |