9.5 __asm

This keyword passes information from the compiler to the ARM assembler armasm.

The precise action of this keyword depends on its usage.

Usage

Embedded assembly
The __asm keyword can declare or define an embedded assembly function. For example:
__asm void my_strcpy(const char *src, char *dst);
Inline assembly
The __asm keyword can incorporate inline assembly into a function. For example:
int qadd(int i, int j)
{
    int res;
    __asm
    {
        QADD   res, i, j
    }
    return res;
}
Assembly labels
The __asm keyword can specify an assembly label for a C symbol. For example:
int count __asm__("count_v1"); // export count_v1, not count
Named register variables
The __asm keyword can declare a named register variable. For example:
register int foo __asm("r0");
Related concepts
6.26 Embedded assembler support in the compiler
6.1 Compiler support for inline assembly language
Related reference
9.150 Named register variables
8.36 Assembler labels
Non-ConfidentialPDF file icon PDF versionARM DUI0375F
Copyright © 2007, 2008, 2011, 2012, 2014 ARM. All rights reserved.