Mnemonik |
Operanden |
Beschreibung |
Operation |
Flags |
Takte |
RJMP
|
k |
Relativer Sprung |
PC ← PC + k + 1 |
keines |
2 |
IJMP
(1) |
|
Indirekter Sprung zu (Z) |
PC(15:0) ← Z, PC(21:16) ← 0 |
keines |
2 |
EIJMP
(1) |
|
Erweiterter indirekter Sprung zu (Z) |
PC(15:0) ← Z, PC(21:16) ← EIND |
keines |
2 |
JMP
(1) |
k |
Direkter Sprung |
PC ← k |
keines |
3 |
RCALL
|
k |
Relativer Aufruf Unterprogramm |
PC ← PC + k + 1 |
keines |
3 / 4 |
ICALL
(1) |
|
Indirekter Aufruf Unterprogramm |
PC(15:0) ← Z, PC(21:16) ← 0 |
keines |
3 / 4 |
EICALL
(1) |
|
Erweiterter indirekter Aufruf Unterprogramm |
PC(15:0) ← Z, PC(21:16) ← EIND |
keines |
4 |
CALL
(1) |
k |
Direkter Aufruf Unterprogramm |
PC ← k |
keines |
4 |
RET
|
|
Rückkehr aus Unterprogramm |
PC ← STACK |
keines |
4 |
RETI
|
|
Rückkehr aus Interrupt - Routine |
PC ← STACK |
I |
4 |
CPSE
|
Rd, Rr |
Vergleichen, überspringen wenn gleich |
Wenn (Rd=Rr) dann PC ← PC + 2 oder 3 |
keines |
1/2/3 |
CP
|
Rd, Rr |
Vergleichen |
Rd - Rr |
Z, N, S, V, C, H |
1 |
CPC
|
Rd, Rr |
Register Vergleichen mit Carry |
Rd - Rr - C |
Z, N, S, V, C, H |
1 |
CPI
|
Rd, K (3) |
Vergleiche Register mit Konstante |
Rd - K |
Z, N, S, V, C, H |
1 |
SBRC
|
Rr, b |
Überspringen, wenn Bit in Register gelöscht |
Wenn (Rr(b)=0) dann PC ← PC + 2 oder 3 |
keines |
1/2/3 |
SBRS
|
Rr, b |
Überspringen, wenn Bit in Register gesetzt |
Wenn (Rr(b)=1) dann PC ← PC + 2 oder 3 |
keines |
1/2/3 |
SBIC
|
A, b (3) |
Überspringen, wenn Bit in I/O-Register gelöscht |
Wenn (A(b)=0) dann PC ← PC + 2 oder 3 |
keines |
1/2/3 |
SBIS
|
A, b (3) |
Überspringen, wenn Bit in I/O-Register gesetzt |
Wenn (A(b)=1) dann PC ← PC + 2 oder 3 |
keines |
1/2/3 |
BRBS
|
s, k |
Verzweigen, wenn Statusbit s gesetzt ist. |
Wenn (SREG(s)=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRBC
|
s, k |
Verzweigen, wenn Statusbit s gelöscht ist. |
Wenn (SREG(s)=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BREQ
|
k |
Verzweigen wenn gleich |
Wenn (Z=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRNE
|
k |
Verzweigen wenn nicht gleich |
Wenn (Z=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRCS
|
k |
Verzweigen wenn Carry gesetzt ist. |
Wenn (C=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRCC
|
k |
Verzweigen wenn Carry gelöscht ist. |
Wenn (C=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRSH
|
k |
Verzweigen wenn gleich oder grösser |
Wenn (C=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRLO
|
k |
Verzweigen wenn kleiner |
Wenn (C=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRMI
|
k |
Verzweigen wenn Minus |
Wenn (N=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRPL
|
k |
Verzweigen wenn Plus |
Wenn (N=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRGE
|
k |
Verzweigen wenn größer oder gleich, vorzeichenbehaftet |
Wenn (N V
= 0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRLT
|
k |
Verzweigen wenn kleiner als, vorzeichenbehaftet |
Wenn (N V
= 1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRHS
|
k |
Verzweigen wenn H-Carry Flag gesetzt ist |
Wenn (H=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRHC
|
k |
Verzweigen wenn H-Carry Flag gelöscht ist |
Wenn (H=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRTS
|
k |
Verzweigen wenn T-Flag gesetzt ist |
Wenn (T=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRTC
|
k |
Verzweigen wenn T-Flag gelöscht ist |
Wenn (T=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRVS
|
k |
Verzweigen wenn Overflow-Flag (V) gesetzt ist |
Wenn (V=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRVC
|
k |
Verzweigen wenn Overflow-Flag (V) gelöscht ist |
Wenn (V=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRIE
|
k |
Verzweigen wenn Interrupt freigegeben |
Wenn (I=1) dann PC ← PC + k + 1 |
keines |
1 / 2 |
BRID
|
k |
Verzweigen wenn Interrupt gesperrt |
Wenn (I=0) dann PC ← PC + k + 1 |
keines |
1 / 2 |