Mnemonic Operands Description Operation Flags Cycles

RJMP

k

Relative JumpPC = PC + k +1None2

IJMP

None

Indirect Jump to (X,Y,Z)

PC = ZNone2

EIJMP

None

Extended Indirect Jump (X,Y,Z)

STACK = PC+1, PC(15:0) = Z, PC(21:16) = EINDNone2

JMP

k

JumpPC = kNone3

RCALL

k

Relative Call SubroutineSTACK = PC+1, PC = PC + k + 1None3/4*

ICALL

None

Indirect Call to (X,Y,Z)

STACK = PC+1, PC = ZNone3/4*

EICALL

NoneExtended Indirect Call to (X,Y,Z)STACK = PC+1, PC(15:0) = Z, PC(21:16) =EINDNone4*

CALL

k

Call SubroutineSTACK = PC+2, PC = kNone4/5*

RET

NoneSubroutine ReturnPC = STACKNone4/5*

RETI

NoneInterrupt ReturnPC = STACKI4/5*

CPSE

Rd,Rr

Compare, Skip if equalif (Rd ==Rr) PC = PC 2 or 3None1/2/3

CP

Rd,Rr

CompareRd -RrZ,C,N,V,H,S1

CPC

Rd,Rr

Compare with CarryRd - Rr - CZ,C,N,V,H,S1

CPI

Rd,K8

Compare with ImmediateRd - KZ,C,N,V,H,S1

SBRC

Rr,b

Skip if bit in register clearedif(Rr(b)==0) PC = PC + 2 or 3None1/2/3

SBRS

Rr,b

Skip if bit in register setif(Rr(b)==1) PC = PC + 2 or 3None1/2/3

SBIC

P,b

Skip if bit in I/O register clearedif(I/O(P,b)==0) PC = PC + 2 or 3None1/2/3

SBIS

P,b

Skip if bit in I/O register setif(I/O(P,b)==1) PC = PC + 2 or 3None1/2/3

BRBC

s,k

Branch if Status flag clearedif(SREG(s)==0) PC = PC + k + 1None1/2

BRBS

s,k

Branch if Status flag setif(SREG(s)==1) PC = PC + k + 1None1/2

BREQ

k

Branch if equalif(Z==1) PC = PC + k + 1None1/2

BRNE

k

Branch if not equalif(Z==0) PC = PC + k + 1None1/2

BRCS

k

Branch if carry setif(C==1) PC = PC + k + 1None1/2

BRCC

k

Branch if carry clearedif(C==0) PC = PC + k + 1None1/2

BRSH

k

Branch if same or higherif(C==0) PC = PC + k + 1None1/2

BRLO

k

Branch if lowerif(C==1) PC = PC + k + 1None1/2

BRMI

k

Branch if minusif(N==1) PC = PC + k + 1None1/2

BRPL

k

Branch if plusif(N==0) PC = PC + k + 1None1/2

BRGE

k

Branch if greater than or equal (signed)if(S==0) PC = PC + k + 1None1/2

BRLT

k

Branch if less than (signed)if(S==1) PC = PC + k + 1None1/2

BRHS

k

Branch if half carry flag setif(H==1) PC = PC + k + 1None1/2

BRHC

k

Branch if half carry flag clearedif(H==0) PC = PC + k + 1None1/2

BRTS

k

Branch if T flag setif(T==1) PC = PC + k + 1None1/2

BRTC

k

Branch if T flag clearedif(T==0) PC = PC + k + 1None1/2

BRVS

k

Branch if overflow flag setif(V==1) PC = PC + k + 1None1/2

BRVC

k

Branch if overflow flag clearedif(V==0) PC = PC + k + 1None1/2

BRIE

k

Branch if interrupt enabledif(I==1) PC = PC + k + 1None1/2

BRID

k

Branch if interrupt disabledif(I==0) PC = PC + k + 1None1/2