| |||
| Home > Using the Inline and Embedded Assemblers of the ARM Compiler > Effect of compiler ARM and Thumb states on embedded assembler | |||
The initial state of the embedded assembler, ARM or Thumb state, is determined by the initial state of the compiler, as specified on the command line. This means that:
if the compiler starts in ARM state, the embedded
assembler uses --arm
if the compiler starts in Thumb state, the embedded
assembler uses --thumb.
The embedded assembler state at the start of each function
is as set by the invocation of the compiler, as modified by #pragma
arm and #pragma thumb pragmas.
You can change the state of the embedded assembler within
a function by using explicit ARM, THUMB,
or CODE16 directives in the embedded assembler function.
Such a directive within an __asm function does
not affect the ARM or Thumb state of subsequent __asm functions.
If you are compiling for a Thumb-2 capable processor, you can use Thumb-2 instructions when in Thumb state.