Syntax: |
Operation: |
Operands: |
Program Counter: |
Opcode |
Comment |
Stack |
BRSH k |
If Rd >=Rr (C == 0) then PC = PC + k + 1, else PC = PC + 1 |
-64 <= k <= +63 |
PC = PC + k + 1 PC = PC + 1, if the condition is false |
111101kkkkkkk000 |
Conditional relative branch. Tests the Carry (C) flag and branches relatively to the 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 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 the PC in either direction (PC - 63 <= destination <= PC + 64). Parameter k is the offset from the PC and is represented in two's complement form. (Equivalent to instruction BRBC 0,k.)
I |
– |
||
T |
– |
||
H |
– |
||
S |
– |
||
V |
– |
||
N |
– |
||
Z |
– |
||
C |
– |
subi r19,4 ; Subtract 4 from r19 brsh highsm ; Branch if r19 >= 4 (unsigned) ... highsm: nop ; Branch destination (do nothing)
1 (2 bytes)
Name |
Cycles i |
ii |
AVRe |
1 |
2 |
AVRxm |
1 |
2 |
AVRxt |
1 |
2 |
AVRrc |
1 |
2 |
i) If the condition is false.
ii) If the condition is true.