You copied the Doc URL to your clipboard.

13.159 TST

Test bits.


TST{cond} Rn, Operand2



is an optional condition code.


is the ARM register holding the first operand.


is a flexible second operand.


This instruction tests the value in a register against Operand2.It updates the condition flags on the result, but does not placethe result in any register.

The TST instruction performs abitwise AND operation on the value in Rn andthe value of Operand2. Thisis the same as an ANDS instruction, exceptthat the result is discarded.

Register restrictions

In this T32 instruction, you cannot use SP or PC for Rn or Operand2.

In this A32 instruction, use of SP or PC is deprecated.

For A32 instructions:

  • If you use PC (R15) as Rn, the value used is the address of the instruction plus 8.

  • You cannot use PC for any operand in any data processing instruction that has a register-controlled shift.

Condition flags

This instruction:

  • Updates the N and Z flags according to the result.
  • Can update the C flag during the calculation of Operand2.
  • Does not affect the V flag.

16-bit instructions

The following form of the TST instruction is available in T32 code, and is a 16-bit instruction:

TST Rn, Rm

Rn and Rm mustboth be Lo registers.


This instruction is available A32 and T32.


    TST     r0, #0x3F8    TSTNE   r1, r5, ASR r1