29. BRSH – Branch if Same or Higher (Unsigned)
29.1. Description
Conditional relative branch. Tests the Carry Flag (C) and branches relatively to PC if C is cleared. If the
instruction is executed immediately after execution of any of the instructions CP, CPI, SUB, or SUBI, the
branch will occur if and only if, the unsigned binary number represented in Rd was greater than or equal
to the unsigned 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 0,k.)
Operation:
(i) If Rd ≥Rr (C = 0) then PC ← PC + k + 1, else PC ← PC + 1
Syntax: Operands: Program Counter:
(i) BRSH k -64 ≤ k ≤ +63 PC ← PC + k + 1
PC ← PC + 1, if condition is
false
16-bit Opcode:
1111 01kk kkkk k000
29.2. Status Register (SREG) and Boolean Formula
I T H S V N Z C
– – – – – – – –
Example:
subi r19,4 ; Subtract 4 from r19
brsh highsm ; Branch if r19 >= 4 (unsigned)
...
highsm: 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
56