27. BRNE – Branch if Not Equal
27.1. Description
Conditional relative branch. Tests the Zero Flag (Z) and branches relatively to PC if Z is cleared. 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 not 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 BRBC 1,k.)
Operation:
(i) If Rd ≠ Rr (Z = 0) then PC ← PC + k + 1, else PC ← PC + 1
Syntax: Operands: Program Counter:
(i) BRNE k -64 ≤ k ≤ +6 PC ← PC + k + 1
PC ← PC + 1, if condition is
false
16-bit Opcode:
1111 01kk kkkk k001
27.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
– – – – – – – –
Example:
eor r27,r27 ; Clear r27
loop: inc r27 ; Increase r27
...
cpi r27,5 ; Compare r27 to 5
brne loop ; Branch if r27<>5
nop ; Loop exit (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
54