UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 20 December 2013 659 of 841
NXP Semiconductors
UM10360
Chapter 34: Appendix: Cortex-M3 user guide
This section describes:
• Section 34.2.3.7.1 “The condition flags”
• Section 34.2.3.7.2 “Condition code suffixes”.
34.2.3.7.1 The condition flags
The APSR contains the following condition flags:
N — Set to 1 when the result of the operation was negative, cleared to 0 otherwise.
Z — Set to 1 when the result of the operation was zero, cleared to 0 otherwise.
C — Set to 1 when the operation resulted in a carry, cleared to 0 otherwise.
V — Set to 1 when the operation caused overflow, cleared to 0 otherwise.
For more information about the APSR see Section 34.3.1.3.5 “
Program Status Register”.
A carry occurs:
• if the result of an addition is greater than or equal to 2
32
• if the result of a subtraction is positive or zero
• as the result of an inline barrel shifter operation in a move or logical instruction.
Overflow occurs if the result of an add, subtract, or compare is greater than or equal to
2
31
, or less than –2
31
.
Remark: Most instructions update the status flags only if the S suffix is specified. See the
instruction descriptions for more information.
34.2.3.7.2 Condition code suffixes
The instructions that can be conditional have an optional condition code, shown in syntax
descriptions as {cond}. Conditional execution requires a preceding
IT
instruction. An
instruction with a condition code is only executed if the condition code flags in the APSR
meet the specified condition. Table 615
shows the condition codes to use.
You can use conditional execution with the
IT
instruction to reduce the number of branch
instructions in code.
Table 615
also shows the relationship between condition code suffixes and the N, Z, C,
and V flags.
Table 615. Condition code suffixes
Suffix Flags Meaning
EQ
Z = 1 Equal
NE
Z = 0 Not equal
CS or HS
C = 1 Higher or same, unsigned
CC or LO
C = 0 Lower, unsigned <
MI
N = 1 Negative
PL
N = 0 Positive or zero
VS
V = 1 Overflow
VC
V = 0 No overflow