18. BREQ – Branch if Equal
18.1. Description
Conditional relative branch. Tests the Zero Flag (Z) and branches relatively to PC if Z is set. If the
instruction is executed immediately after any of the instructions CP, CPI, SUB, or SUBI, the branch will
occur if and only if the unsigned or signed binary number represented in Rd was equal to the unsigned or
signed binary number represented in Rr. This instruction branches relatively to PC in either direction (PC -
63 ≤ destination ≤ PC + 64). Parameter k is the offset from PC and is represented in two’s complement
form. (Equivalent to instruction BRBS 1,k.)
Operation:
(i) If Rd = Rr (Z = 1) then PC ← PC + k + 1, else PC ← PC + 1
Syntax: Operands: Program Counter:
(i) BREQ k -64 ≤ k ≤ +63 PC ← PC + k + 1
PC ← PC + 1, if condition is
false
16-bit Opcode:
1111 00kk kkkk k001
18.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
– – – – – – – –
Example:
cp r1,r0 ; Compare registers r1 and r0
breq equal ; Branch if registers equal
...
equal: nop ; Branch destination (do nothing)
Words 1 (2 bytes)
Cycles 1 if condition is false
2 if condition is true
Atmel AVR Instruction Set Manual [OTHER]
Atmel-0856L-AVR-Instruction-Set-Manual_Other-11/2016
45