You copied the Doc URL to your clipboard.

13.97 RSC

Reverse Subtract with Carry.


RSC{S}{cond} {Rd}, Rn, Operand2



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


is an optional condition code.


is the destination register.


is the register holding the first operand.


is a flexible second operand.


The RSC instruction subtracts thevalue in Rn from the value of Operand2.If the carry flag is clear, the result is reduced by one.

You can use RSC to synthesize multiwordarithmetic.

In certain circumstances, the assembler can substitute oneinstruction for another. Be aware of this when reading disassemblylistings.

RSC is not available in T32 code.

Use of PC and SP

Use of PC and SP is deprecated.

You cannot use PC for Rd orany operand in an RSC instruction thathas a register-controlled shift.

If you use PC (R15) as Rn or Rm,the value 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, see the SUBS pc,lr instruction.

Condition flags

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

Correct example

    RSCSLE  r0,r5,r0,LSL r4     ; conditional, flags set

Incorrect example

    RSCSLE  r0,pc,r0,LSL r4    ; PC not permitted with register                                ; controlled shift
Was this page helpful? Yes No