
DR
AFT
DR
AFT
DRAFT
DR
D
RAFT
DRAFT
DRA
FT DRAF
D
RAFT DRAFT DRAFT DRAFT DRAFT D
DRAFT
D
RAFT DRA
FT DRAFT DRAFT DRAFT DRA
UM10360_0
© NXP B.V. 2009. All rights reserved.
User manual
Rev. 00.06 — 5 June 2009
660 of 808
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 User Guide
2.5.9 TST and TEQ
Test bits and Test Equivalence.
2.5.9.1
Syntax
TST
{
cond
}
Rn
,
Operand2
TEQ
{
cond
}
Rn
,
Operand2
where:
cond
is an optional condition code, see
Section 34–2.3.7 “Conditional execution”
.
Rn
is the register holding the first operand.
Operand2
is a flexible second operand. See
for details of the options.
2.5.9.2
Operation
These instructions test the value in a register against
Operand2
. They update the
condition flags based on the result, but do not write the result to a register.
The
TST
instruction performs a bitwise AND operation on the value in
Rn
and the value of
Operand2
. This is the same as the
ANDS
instruction, except that it discards the result.
To test whether a bit of
Rn
is 0 or 1, use the
TST
instruction with an
Operand2
constant that
has that bit set to 1 and all other bits cleared to 0.
The
TEQ
instruction performs a bitwise Exclusive OR operation on the value in
Rn
and the
value of
Operand2
. This is the same as the
EORS
instruction, except that it discards the
result.
Use the
TEQ
instruction to test if two values are equal without affecting the V or C flags.
TEQ
is also useful for testing the sign of a value. After the comparison, the N flag is the
logical Exclusive OR of the sign bits of the two operands.
2.5.9.3
Restrictions
Do not use SP and do not use PC.
2.5.9.4
Condition flags
These instructions:
•
update the N and Z flags according to the result
•
can update the C flag during the calculation of
Operand2
•
do not affect the V flag.
2.5.9.5
Examples
TST
R0, #0x3F8
; Perform bitwise AND of R0 value to 0x3F8,
; APSR is updated but result is discarded
TEQEQ
R10, R9
; Conditionally test if value in R10 is equal to
; value in R9, APSR is updated but result is discarded