Datasheet
85
11011B–ATARM–21-Feb-12
SAM3N
This section describes:
• “The condition flags”
• “Condition code suffixes” .
10.11.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 “Program Status Register” on page 46.
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
.
Most instructions update the status flags only if the S suffix is specified. See the instruction
descriptions for more information.
10.11.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 10-16 shows the condition codes to use.
You can use conditional execution with the IT instruction to reduce the number of branch instruc-
tions in code.
Table 10-16 also shows the relationship between condition code suffixes and the N, Z, C, and V
flags.
Table 10-16. 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