2.6.5.6.3 Restrictions

You can use SP and PC only in the MOV instruction, with the following restrictions:

  • the second operand must be a register without shift
  • you must not specify the S suffix.

When Rd is PC in a MOV instruction:

  • bit[0] of the value written to the PC is ignored
  • a branch occurs to the address created by forcing bit[0] of that value to 0.
    Note: Though it is possible to use MOV as a branch instruction, Arm strongly recommends the use of a BX or BLX instruction to branch for software portability to the Arm instruction set.