You copied the Doc URL to your clipboard.

Inline assembler instruction restrictions in C and C++ code

The following instructions are not supported in the inline assembler:

  • BKPT, BX, BXJ, and BLX instructions.

    Note

    You can insert a BKPT instruction in C and C++ code by using the __breakpoint() intrinsic.

  • LDR Rn, =expression pseudo-instruction. Use MOV Rn, expression instead. (This can generate a load from a literal pool.)

  • LDRT, LDRBT, STRT, and STRBT instructions.

  • MUL, MLA, UMULL, UMLAL, SMULL, and SMLAL flag setting instructions.

  • MOV or MVN flag-setting instructions where the second operand is a constant.

  • User-mode LDM instructions.

  • ADR and ADRL pseudo-instructions.

    Note

    You can use MOV Rn, &expression; instead of the ADR and ADRL pseudo-instructions.