You copied the Doc URL to your clipboard.

13.94 ROR

Rotate Right. This instruction is a preferred synonym for MOV instructions with shifted register operands.


ROR{S}{cond} Rd, Rm, Rs

ROR{S}{cond} Rd, Rm, #sh



is an optional suffix. If S is specified, the condition flags are updated on the result of the operation.


is the destination register.


is the register holding the first operand. Thisoperand is shifted right.


is a register holding a shift value to apply tothe value in Rm. Only the least significantbyte is used.


is a constant shift. The range of values is 1-31.


ROR provides the value of the contentsof a register rotated by a value. The bits that are rotated offthe right end are inserted into the vacated bit positions on theleft.

Restrictions in T32 code

T32 instructions must not use PC or SP.

Use of SP and PC in A32 instructions

You can use SP in these A32 instructions but this is deprecated.

You cannot use PC in instructions with the ROR{S}{cond} Rd, Rm, Rs syntax. You can use PC for Rd and Rm in the other syntax, but this is deprecated.

If you use PC as Rm, thevalue used is the address of the instruction plus 8.

If you use PC as Rd:

  • Execution branches to the address corresponding to the result.
  • If you use the S suffix,the SPSR of the current mode is copied to the CPSR. You can use thisto return from exceptions.


    The A32 instruction RORS{cond} pc,Rm,#sh always disassembles to the preferred form MOVS{cond} pc,Rm{,shift}.

Do not use the S suffix when using PC as Rd in User mode or System mode. The assembler cannot warn you about this because it has no information about what the processor mode is likely to be at execution time.

You cannot use PC for Rd orany operand in this instruction if it has a register-controlledshift.

Condition flags

If S is specified, the instructionupdates the N and Z flags according to the result.

The C flag is unaffected if the shift value is 0. Otherwise,the C flag is updated to the last bit shifted out.

16-bit instructions

The following forms of this instruction are available in T32 code, and are 16-bit instructions:

RORS Rd, Rd, Rs

Rd and Rs mustboth be Lo registers. This form can only be used outside an IT block.

ROR{cond} Rd, Rd, Rs

Rd and Rs mustboth be Lo registers. This form can only be used inside an IT block.


This instruction is available in A32 and T32.


    ROR     r4, r5, r6