BI-SAP.21 Struktura a architektura počítačů
Jdi na navigaci předmětu

Kódování instrukcí AVR-8bit

Seznam použitých symbolů

dii-tý bit čísla cílového registru
rii-tý bit čísla zdrojového registru
Kii-tý bit přímé konstanty
kii-tý bit přímé adresy
qii-tý bit posunutí (displacement)
Aii-tý bit čísla vstupně/výstupního registru
bi, sii-tý bit čísla bitu
xii-tý bit operačního znaku specifikovaného tabulkou

Strojový kód

NOP

0000000000000000

MOVW, MULS

000000x1x0d3d2d1d0r3r2r1r0
x1x0
01-MOVW
10-MULS

MULSU, FMUL, FMULS, FMULSU

00000011x1d2d1d0x0r2r1r0
x1x0
00-MULSU
01-FMUL
10-FMULS
11-FMULSU

CPC, SBC, ADD, LSL, CPSE, CP, SUB, ADC, ROL, AND, TST, EOR, CLR, OR, MOV

00x3x2x1x0r4d4d3d2d1d0r3r2r1r0
x3x2x1x0
0001-CPC
0010-SBC
0011-ADD, LSL [1]
0100-CPSE
0101-CP
0110-SUB
0111-ADC, ROL [2]
1000-AND, TST [3]
1001-EOR, CLR [4]
1010-OR
1011-MOV

CPI, SBCI, SUBI, ORI, SBR, ANDI, CBR

0x2x1x0K7K6K5K4d3d2d1d0K3K2K1K0
x2x1x0
011-CPI
100-SBCI
101-SUBI
110-ORI, SBR [5]
111-ANDI, CBR [6]

LD

100x4000d4d3d2d1d0x3x2x1x0
x4x3x2x1x0
00000-LD Rd, Z
10001-LD Rd, Z+
10010-LD Rd, -Z
01000-LD Rd, Y
11001-LD Rd, Y+
11010-LD Rd, -Y
11100-LD Rd, X
11101-LD Rd, X+
11110-LD Rd, -X

ST

100x4001r4r3r2r1r0x3x2x1x0
x4x3x2x1x0
00000-ST Z,Rr
10001-ST Z+, Rr
10010-ST –Z, Rr
01000-ST Y, Rr
11001-ST Y+, Rr
11010-ST –Y, Rr
11100-ST X, Rr
11101-ST X+, Rr
11110-ST –X, Rr

LDD

10q50q4q30d4d3d2d1d0x0q2q1q0
x0
0-LDD Z+q, Rd
1-LDD Y+q, Rd

STD

10q50q4q31r4r3r2r1r0x0q2q1q0
x0
0-STD Z+q, Rd
1-STD Y+q, Rd

LDS

1001000d4d3d2d1d00000
k15k14k13k12k11k10k9k8k7k6k5k4k3k2k1k0

STS

1001001r4r3r2r1r00000
k15k14k13k12k11k10k9k8k7k6k5k4k3k2k1k0

COM, NEG, SWAP, INC, ASR, LSR, ROR, DEC

1001010d4d3d2d1d0x3x2x1x0
x3x2x1x0
0000-COM
0001-NEG
0010-SWAP
0011-INC
0101-ASR
0110-LSR
0111-ROR
1010-DEC

BSET, BCLR

10010100x0s2s1s01000
x0
0-BSET
1-BCLR

IJMP, ICALL, BREAK, RET, RETI, SLEEP, SPM, WDR, LPM

1001010x5x4x3x2x1100x0
x5x4x3x2x1x0
000001-IJMP
100001-ICALL
110010-BREAK
100000-RET
100010-RETI
110000-SLEEP
111100-SPM
110100-WDR
111000-LPM

ADDIW, SBIW

1001011x0K5K4d1d0K3K2K1K0
x0
0-ADIW
1-SBIW

LPM, POP, PUSH

100100x4d4d3d2d1d0x3x2x1x0
x4x3x2x1x0
00100-LPM Rd, Z
00101-LPM Rd, Z+
01111-POP
11111-PUSH

MUL

100111r4d4d3d2d1d0r3r2r1r0

CBI, SBI, SBIC, SBIS

100110x1x0A4A3A2A1A0b2b1b0
x1x0
00-CBI
01-SBIC
10-SBI
11-SBIS

CALL, JMP

10010100000011x00
k15k14k13k12k11k10k9k8k7k6k5k4k3k2k1k0
x0
0-JMP
1-CALL

IN

10110A5A4d4d3d2d1d0A3A2A1A0

OUT

10111A5A4r4r3r2r1r0A3A2A1A0

LDI, SER

[7]

1110K7K6K5K4d3d2d1d0K3K2K1K0

RJMP, RCALL

110x0k11k10k9k8k7k6k5k4k3k2k1k0
x0
0-RJMP
1-RCALL

BRBS, BRBC

1111x1x0k6k5k4k3k2k1k0s2s1s0
x1x0
00-BRBS
01-BRBC

BST

1111101d4d3d2d1d00b2b1b0

BLD

1111100d4d3d2d1d00b2b1b0

SBRC, SBRS

111111x0r4r3r2r1r00b2b1b0
x0
0-SBRC
1-SBRS

  1. LSL Rd ≡ ADD Rd, Rd
  2. ROL Rd ≡ ADC Rd, Rd
  3. TST Rd ≡ AND Rd, Rd
  4. CLR Rd ≡ EOR Rd, Rd
  5. SBR Rd, K ≡ ORI Rd, K
  6. CBR Rd, K ≡ ANDI Rd, K
  7. SER Rd ≡ LDI Rd, $FF