- Rd := Rn + Operand2
ADC– Add with Carry
- Rd := Rn + Operand2 + Carry
- Rd := Rn − Operand2
SBC– Subtract with Carry
- Rd := Rn − Operand2 − NOT(Carry)
RSB– Reverse Subtract
- Rd := Operand2 − Rn
RSC– Reverse Subtract with Carry
- Rd := Operand2 − Rn − NOT(Carry)
Examples of Arithmetic Instructions
ADD r0, r1, r2
- R0 = R1 + R2
SUB r5, r3, #10
- R5 = R3 − 10
RSB r2, r5, #0xFF00
- R2 = 0xFF00 − R5
RSC subtract in reverse order (e.g. y - x not x - y).
Multiplication has a different format and is described later.
There is no divide instruction – the compiler uses a run-time library function or shifts to perform division.