Chapter 9: Inline Assembly Code
Today, few programmers use assembly language. Higher-level languages such as C and C++ run on nearly all architectures and yield higher productivity when writing and maintaining code. For occasions when programmers need to use assembly instructions in their programs, the GNU Compiler Collection permits programmers to add architecture-dependent assembly language instructions to their programs.
GCC's inline assembly statements should not be used indiscriminately. Assembly language instructions are architecture-dependent, so, for example, programs using x86 instructions cannot be compiled on PowerPC computers. To use them, you'll require a facility in the assembly language for your architecture. However, inline assembly statements permit you to access hardware directly and can also yield faster code.
An asm instruction allows you to insert assembly instructions into C and C++ programs. For example, this instruction
asm ("fsin" : "=t" (answer) : "0" (angle));
is an x86-specific way of coding this C statement:
answer = sin (angle);
The expression sin (angle) is usually implemented as a function call into the math library, but if you specify the -O1 or higher optimization flag, GCC is smart enough to replace the function call with a single fsin assembly instruction.
Observe that unlike ordinary assembly code instructions, asm statements permit you to specify input and output operands using C syntax.
...
Download PDF.
- Add new comment
- 6259 reads





Recent comments
2 hours 37 min ago
2 days 12 hours ago
2 days 19 hours ago
5 days 16 hours ago
5 days 16 hours ago
5 days 22 hours ago
1 week 2 hours ago
1 week 3 hours ago
1 week 3 hours ago
1 week 4 hours ago