Kódování instrukcí AVR-8bit
Seznam použitých symbolů
| di | i-tý bit čísla cílového registru |
| ri | i-tý bit čísla zdrojového registru |
| Ki | i-tý bit přímé konstanty |
| ki | i-tý bit přímé adresy |
| qi | i-tý bit posunutí (displacement) |
| Ai | i-tý bit čísla vstupně/výstupního registru |
| bi, si | i-tý bit čísla bitu |
| xi | i-tý bit operačního znaku specifikovaného tabulkou |
Strojový kód
NOP
| 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
|---|
MOVW, MULS
| 0 | 0 | 0 | 0 | 0 | 0 | x1 | x0 | d3 | d2 | d1 | d0 | r3 | r2 | r1 | r0 |
|---|
| x1 | x0 | ||
| 0 | 1 | - | MOVW |
| 1 | 0 | - | MULS |
MULSU, FMUL, FMULS, FMULSU
| 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | x1 | d2 | d1 | d0 | x0 | r2 | r1 | r0 |
|---|
| x1 | x0 | ||
| 0 | 0 | - | MULSU |
| 0 | 1 | - | FMUL |
| 1 | 0 | - | FMULS |
| 1 | 1 | - | FMULSU |
CPC, SBC, ADD, LSL, CPSE, CP, SUB, ADC, ROL, AND, TST, EOR, CLR, OR, MOV
| 0 | 0 | x3 | x2 | x1 | x0 | r4 | d4 | d3 | d2 | d1 | d0 | r3 | r2 | r1 | r0 |
|---|
CPI, SBCI, SUBI, ORI, SBR, ANDI, CBR
| 0 | x2 | x1 | x0 | K7 | K6 | K5 | K4 | d3 | d2 | d1 | d0 | K3 | K2 | K1 | K0 |
|---|
LD
| 1 | 0 | 0 | x4 | 0 | 0 | 0 | d4 | d3 | d2 | d1 | d0 | x3 | x2 | x1 | x0 |
|---|
| x4 | x3 | x2 | x1 | x0 | ||
| 0 | 0 | 0 | 0 | 0 | - | LD Rd, Z |
| 1 | 0 | 0 | 0 | 1 | - | LD Rd, Z+ |
| 1 | 0 | 0 | 1 | 0 | - | LD Rd, -Z |
| 0 | 1 | 0 | 0 | 0 | - | LD Rd, Y |
| 1 | 1 | 0 | 0 | 1 | - | LD Rd, Y+ |
| 1 | 1 | 0 | 1 | 0 | - | LD Rd, -Y |
| 1 | 1 | 1 | 0 | 0 | - | LD Rd, X |
| 1 | 1 | 1 | 0 | 1 | - | LD Rd, X+ |
| 1 | 1 | 1 | 1 | 0 | - | LD Rd, -X |
ST
| 1 | 0 | 0 | x4 | 0 | 0 | 1 | r4 | r3 | r2 | r1 | r0 | x3 | x2 | x1 | x0 |
|---|
| x4 | x3 | x2 | x1 | x0 | ||
| 0 | 0 | 0 | 0 | 0 | - | ST Z,Rr |
| 1 | 0 | 0 | 0 | 1 | - | ST Z+, Rr |
| 1 | 0 | 0 | 1 | 0 | - | ST –Z, Rr |
| 0 | 1 | 0 | 0 | 0 | - | ST Y, Rr |
| 1 | 1 | 0 | 0 | 1 | - | ST Y+, Rr |
| 1 | 1 | 0 | 1 | 0 | - | ST –Y, Rr |
| 1 | 1 | 1 | 0 | 0 | - | ST X, Rr |
| 1 | 1 | 1 | 0 | 1 | - | ST X+, Rr |
| 1 | 1 | 1 | 1 | 0 | - | ST –X, Rr |
LDD
| 1 | 0 | q5 | 0 | q4 | q3 | 0 | d4 | d3 | d2 | d1 | d0 | x0 | q2 | q1 | q0 |
|---|
| x0 | ||
| 0 | - | LDD Z+q, Rd |
| 1 | - | LDD Y+q, Rd |
STD
| 1 | 0 | q5 | 0 | q4 | q3 | 1 | r4 | r3 | r2 | r1 | r0 | x0 | q2 | q1 | q0 |
|---|
| x0 | ||
| 0 | - | STD Z+q, Rd |
| 1 | - | STD Y+q, Rd |
LDS
| 1 | 0 | 0 | 1 | 0 | 0 | 0 | d4 | d3 | d2 | d1 | d0 | 0 | 0 | 0 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| k15 | k14 | k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | k0 |
STS
| 1 | 0 | 0 | 1 | 0 | 0 | 1 | r4 | r3 | r2 | r1 | r0 | 0 | 0 | 0 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| k15 | k14 | k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | k0 |
COM, NEG, SWAP, INC, ASR, LSR, ROR, DEC
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | d4 | d3 | d2 | d1 | d0 | x3 | x2 | x1 | x0 |
|---|
| x3 | x2 | x1 | x0 | ||
| 0 | 0 | 0 | 0 | - | COM |
| 0 | 0 | 0 | 1 | - | NEG |
| 0 | 0 | 1 | 0 | - | SWAP |
| 0 | 0 | 1 | 1 | - | INC |
| 0 | 1 | 0 | 1 | - | ASR |
| 0 | 1 | 1 | 0 | - | LSR |
| 0 | 1 | 1 | 1 | - | ROR |
| 1 | 0 | 1 | 0 | - | DEC |
BSET, BCLR
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | x0 | s2 | s1 | s0 | 1 | 0 | 0 | 0 |
|---|
| x0 | ||
| 0 | - | BSET |
| 1 | - | BCLR |
IJMP, ICALL, BREAK, RET, RETI, SLEEP, SPM, WDR, LPM
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | x5 | x4 | x3 | x2 | x1 | 1 | 0 | 0 | x0 |
|---|
| x5 | x4 | x3 | x2 | x1 | x0 | ||
| 0 | 0 | 0 | 0 | 0 | 1 | - | IJMP |
| 1 | 0 | 0 | 0 | 0 | 1 | - | ICALL |
| 1 | 1 | 0 | 0 | 1 | 0 | - | BREAK |
| 1 | 0 | 0 | 0 | 0 | 0 | - | RET |
| 1 | 0 | 0 | 0 | 1 | 0 | - | RETI |
| 1 | 1 | 0 | 0 | 0 | 0 | - | SLEEP |
| 1 | 1 | 1 | 1 | 0 | 0 | - | SPM |
| 1 | 1 | 0 | 1 | 0 | 0 | - | WDR |
| 1 | 1 | 1 | 0 | 0 | 0 | - | LPM |
ADDIW, SBIW
| 1 | 0 | 0 | 1 | 0 | 1 | 1 | x0 | K5 | K4 | d1 | d0 | K3 | K2 | K1 | K0 |
|---|
| x0 | ||
| 0 | - | ADIW |
| 1 | - | SBIW |
LPM, POP, PUSH
| 1 | 0 | 0 | 1 | 0 | 0 | x4 | d4 | d3 | d2 | d1 | d0 | x3 | x2 | x1 | x0 |
|---|
| x4 | x3 | x2 | x1 | x0 | ||
| 0 | 0 | 1 | 0 | 0 | - | LPM Rd, Z |
| 0 | 0 | 1 | 0 | 1 | - | LPM Rd, Z+ |
| 0 | 1 | 1 | 1 | 1 | - | POP |
| 1 | 1 | 1 | 1 | 1 | - | PUSH |
MUL
| 1 | 0 | 0 | 1 | 1 | 1 | r4 | d4 | d3 | d2 | d1 | d0 | r3 | r2 | r1 | r0 |
|---|
CBI, SBI, SBIC, SBIS
| 1 | 0 | 0 | 1 | 1 | 0 | x1 | x0 | A4 | A3 | A2 | A1 | A0 | b2 | b1 | b0 |
|---|
| x1 | x0 | ||
| 0 | 0 | - | CBI |
| 0 | 1 | - | SBIC |
| 1 | 0 | - | SBI |
| 1 | 1 | - | SBIS |
CALL, JMP
| 1 | 0 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | x0 | 0 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| k15 | k14 | k13 | k12 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | k0 |
| x0 | ||
| 0 | - | JMP |
| 1 | - | CALL |
IN
| 1 | 0 | 1 | 1 | 0 | A5 | A4 | d4 | d3 | d2 | d1 | d0 | A3 | A2 | A1 | A0 |
|---|
OUT
| 1 | 0 | 1 | 1 | 1 | A5 | A4 | r4 | r3 | r2 | r1 | r0 | A3 | A2 | A1 | A0 |
|---|
LDI, SER
| 1 | 1 | 1 | 0 | K7 | K6 | K5 | K4 | d3 | d2 | d1 | d0 | K3 | K2 | K1 | K0 |
|---|
RJMP, RCALL
| 1 | 1 | 0 | x0 | k11 | k10 | k9 | k8 | k7 | k6 | k5 | k4 | k3 | k2 | k1 | k0 |
|---|
| x0 | ||
| 0 | - | RJMP |
| 1 | - | RCALL |
BRBS, BRBC
| 1 | 1 | 1 | 1 | x1 | x0 | k6 | k5 | k4 | k3 | k2 | k1 | k0 | s2 | s1 | s0 |
|---|
| x1 | x0 | ||
| 0 | 0 | - | BRBS |
| 0 | 1 | - | BRBC |
BST
| 1 | 1 | 1 | 1 | 1 | 0 | 1 | d4 | d3 | d2 | d1 | d0 | 0 | b2 | b1 | b0 |
|---|
BLD
| 1 | 1 | 1 | 1 | 1 | 0 | 0 | d4 | d3 | d2 | d1 | d0 | 0 | b2 | b1 | b0 |
|---|
SBRC, SBRS
| 1 | 1 | 1 | 1 | 1 | 1 | x0 | r4 | r3 | r2 | r1 | r0 | 0 | b2 | b1 | b0 |
|---|
| x0 | ||
| 0 | - | SBRC |
| 1 | - | SBRS |