You copied the Doc URL to your clipboard.

SUBS (shifted register)

Subtract (shifted register), setting the condition flags.

This instruction is used by the aliases:

  • CMP (shifted register).

  • NEGS.

Syntax

SUBS  Wd, Wn, Wm{, shift #amount}    ; 32-bit general registers
SUBS  Xd, Xn, Xm{, shift #amount}    ; 64-bit general registers

Where:

Wd

Is the 32-bit name of the general-purpose destination register, in the range 0 to 31.

Wn

Is the 32-bit name of the first general-purpose source register, in the range 0 to 31.

Wm

Is the 32-bit name of the second general-purpose source register, in the range 0 to 31.

amount

The value depends on the instruction variant:

32-bit general registers

Is the shift amount, in the range 0 to 31, defaulting to 0.

64-bit general registers

Is the shift amount, in the range 0 to 63, defaulting to 0.

Xd

Is the 64-bit name of the general-purpose destination register, in the range 0 to 31.

Xn

Is the 64-bit name of the first general-purpose source register, in the range 0 to 31.

Xm

Is the 64-bit name of the second general-purpose source register, in the range 0 to 31.

shift

Is the optional shift type to be applied to the second source operand, defaulting to LSL, and can be one of LSL, LSR, or ASR.