|
Wyjście Spis treści Wstecz Dalej
Autor artykułu |
©2026 mgr Jerzy Wałaszek
|

If you use Microchip copyrighted material solely for educational (non-profit) purposes falling under the “fair use” exception of the U.S. Copyright Act of 1976 then you do not need Microchip’s written permission. For example, Microchip’s
permission is not required when using copyrighted material in:
https://www.microchip.com/about-us/legal-information/copyright-usage-guidelines
| Mnemonik | Argumenty | Opis | Działanie | Znaczniki | Liczba cykli |
| Instrukcje Arytmetyczne i Logiczne | |||||
| ADD | Rd, Rr | Add without Carry – Dodawanie bez przeniesienia | Rd ← Rd + Rr | Z,C,N,V,S,H | 1 |
| ADC | Rd, Rr | Add with Carry – Dodawanie z przeniesieniem | Rd ← Rd + Rr + C | Z,C,N,V,S,H | 1 |
| ADIW | Rd, K | Add Immediate to Word – Dodawanie stałej do słowa | Rd+1:Rd ← Rd+1:Rd + K | Z,C,N,V,S | 2 |
| SUB | Rd, Rr | Subtract without Carry – Odejmowanie bez przeniesienia | Rd ← Rd - Rr | Z,C,N,V,S,H | 1 |
| SUBI | Rd, K | Subtract Immediate – Odejmowanie stałej | Rd ← Rd - K | Z,C,N,V,S,H | 1 |
| SBC | Rd, Rr | Subtract with Carry – Odejmowanie z przeniesieniem | Rd ← Rd - Rr - C | Z,C,N,V,S,H | 1 |
| SBCI | Rd, K | Subtract Immediate with Carry – Odejmowanie stałej z przeniesieniem | Rd ← Rd - K - C | Z,C,N,V,S,H | 1 |
| SBIW | Rd, K | Subtract Immediate from Word – Odejmowanie stałej od słowa | Rd+1:Rd ← Rd+1:Rd - K | Z,C,N,V,S | 2 |
| AND | Rd, Rr | Logical AND – Logiczne I (koniunkcja) | Rd ← Rd
|
Z,N,V,S | 1 |
| ANDI | Rd, K | Logical AND with Immediate – Logiczne I ze stałą | Rd ← Rd
|
Z,N,V,S | 1 |
| OR | Rd, Rr | Logical OR – Logiczne LUB (alternatywa) | Rd ← Rd
|
Z,N,V,S | 1 |
| ORI | Rd, K | Logical OR with Immediate – Logiczne LUB ze stałą | Rd ← Rd
|
Z,N,V,S | 1 |
| EOR | Rd, Rr | Exclusive OR – Suma symetryczna | Rd ← Rd
|
Z,N,V,S | 1 |
| COM | Rd | One's Complement – Negacja bitowa U1 | Rd ← 0xFF - Rd | Z,C,N,V,S | 1 |
| NEG | Rd | Two's Complement – Negacja arytmetyczna U2 | Rd ← 0x00 - Rd | Z,C,N,V,S,H | 1 |
| SBR | Rd, K | Set Bit(s) in Register – Ustawienie bitów w rejestrze | Rd ← Rd
|
Z,N,V,S | 1 |
| CBR | Rd, K | Clear Bit(s) in Register – Zerowanie bitów w rejestrze | Rd ← Rd
|
Z,N,V,S | 1 |
| INC | Rd | Increment – Zwiększanie o 1 | Rd ← Rd + 1 | Z,N,V,S | 1 |
| DEC | Rd | Decrement – Zmniejszanie o 1 | Rd ← Rd - 1 | Z,N,V,S | 1 |
| TST | Rd | Test for Zero or Minus – Test na zero lub liczbę ujemną | Rd ← Rd
|
Z,N,V,S | 1 |
| CLR | Rd | Clear Register – Zerowanie wszystkich bitów w rejestrze | Rd ← Rd
|
Z,N,V,S | 1 |
| SER | Rd | Set Register – Ustawienie wszystkich bitów w rejestrze | Rd ← 0xFF | żaden | 1 |
| Instrukcje Rozgałęzień | |||||
| RJMP | k | Relative Jump – Skok względny | PC ← PC + k + 1 | żaden | 2 |
| IJMP | Indirect Jump to (Z) – Skok pośredni pod adres w rejestrze Z | PC(15:0) ← Z, PC(21:16) ← 0 | żaden | 2 | |
| RCALL | k | Relative Call Subroutine – Względne wywołanie podprogramu | PC ← PC + k + 1 | żaden | 3 |
| ICALL | Indirect Call to (Z) – Pośrednie wywołanie podprogramu o adresie w rejestrze Z | PC(15:0) ← Z, PC(21:16) ← 0 | żaden | 3 | |
| RET | Subroutine Return – Powrót z podprogramu | PC ← STACK | żaden | 4 | |
| RETI | Interrupt Return – Powrót z przerwania | PC ← STACK | I | 4 | |
| CPSE | Rd, Rr | Compare, Skip if Equal – Porównanie z pominięciem następnej instrukcji, jeśli argumenty równe | jeśli (Rd = Rr), to PC ← PC + 2 lub 3 | żaden | 1 / 2 / 3 |
| CP | Rd, Rr | Compare – Porównanie | Rd - Rr | Z,C,N,V,S,H | 1 |
| CPC | Rd, Rr | Compare with Carry – Porównanie z przeniesieniem | Rd - Rr - C | Z,C,N,V,S,H | 1 |
| CPI | Rd, K | Compare with Immediate – Porównanie ze stałą | Rd - K | Z,C,N,V,S,H | 1 |
| SBRC | Rr, b | Skip if Bit in Register Cleared – Pominięcie następnej instrukcji, jeśli bit w rejestrze w stanie 0 | jeśli (Rr(b)=0), to PC ← PC + 2 lub 3 | żaden | 1 / 2 / 3 |
| SBRS | Rr, b | Skip if Bit in Register Set – Pominięcie następnej instrukcji, jeśli bit w rejestrze w stanie 1 | jeśli (Rr(b)=1), to PC ← PC + 2 lub 3 | żaden | 1 / 2 / 3 |
| SBIC | A, b | Skip if Bit in I/O Register Cleared – Pominięcie następnej instrukcji, jeśli bit w rejestrze we/wy w stanie 0 | jeśli (I/O(A,b)=0), to PC ← PC + 2 lub 3 | żaden | 1 / 2 / 3 |
| SBIS | A, b | Skip if Bit in I/O Register Set – Pominięcie następnej instrukcji, jeśli bit w rejestrze we/wy w stanie 1 | jeśli (I/O(A,b)=1), to PC ← PC + 2 lub 3 | żaden | 1 / 2 / 3 |
| BRBS | s, k | Branch if Status Flag Set – Skok warunkowy, jeśli znacznik stanu ustawiony | jeśli (SREG(s) = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRBC | s, k | Branch if Status Flag Cleared – Skok warunkowy, jeśli znacznik stanu wyzerowany | jeśli (SREG(s) = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BREQ | k | Branch if Equal – Skok warunkowy, jeśli równe | jeśli (Z = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRNE | k | Branch if Not Equal – Skok warunkowy, jeśli różne | jeśli (Z = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRCS | k | Branch if Carry Set – Skok warunkowy, jeśli jest przeniesienie | jeśli (C = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRCC | k | Branch if Carry Cleared – Skok warunkowy, jeśli nie ma przeniesienia | jeśli (C = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRSH | k | Branch if Same or Higher – Skok względny, jeśli takie same lub wyższe | jeśli (C = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRLO | k | Branch if Lower – Skok warunkowy, jeśli niższe | jeśli (C = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRMI | k | Branch if Minus – Skok warunkowy przy minusie | jeśli (N = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRPL | k | Branch if Plus – Skok warunkowy przy plusie | jeśli (N = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRGE | k | Branch if Greater or Equal, Signed – Skok warunkowy, jeśli większe lub równe, liczby ze znakiem | jeśli (N
|
żaden | 1 / 2 |
| BRLT | k | Branch if Less Than, Signed – Skok warunkowy, jeśli mniejsze, liczby ze znakiem | jeśli (N
|
żaden | 1 / 2 |
| BRHS | k | Branch if Half Carry Flag Set – Skok warunkowy, jeśli przeniesienie połówkowe ustawione | jeśli (H = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRHC | k | Branch if Half Carry Flag Cleared – Skok warunkowy, jeśli przeniesienie połówkowe wyzerowane | jeśli (H = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRTS | k | Branch if T Flag Set – Skok warunkowy, jeśli znacznik T ustawiony | jeśli (T = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRTC | k | Branch if T Flag Cleared – Skok warunkowy, jeśli znacznik T wyzerowany | jeśli (T = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRVS | k | Branch if Overflow Flag is Set – Skok warunkowy, jeśli znacznik nadmiaru V ustawiony | jeśli (V = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRVC | k | Branch if Overflow Flag is Cleared – Skok warunkowy, jeśli znacznik nadmiaru V wyzerowany | jeśli (V = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRIE | k | Branch if Interrupt Enabled – Skok warunkowy przy uaktywnionych przerwaniach | jeśli ( I = 1), to PC ← PC + k + 1 | żaden | 1 / 2 |
| BRID | k | Branch if Interrupt Disabled – Skok warunkowy przy przerwaniach zablokowanych | jeśli ( I = 0), to PC ← PC + k + 1 | żaden | 1 / 2 |
| Instrukcje Operacji na Bitach oraz Testowania Bitów | |||||
| SBI | A, b | Set Bit in I/O Register – Ustawienie bitu w rejestrze we/wy | I/O(A, b) ← 1 | żaden | 2 |
| CBI | A, b | Clear Bit in I/O Register – Zerowanie bitu w rejestrze we/wy | I/O(A, b) ← 0 | żaden | 2 |
| LSL | Rd | Logical Shift Left – Logiczne przesunięcie w lewo | Rd(n+1)←Rd(n),Rd(0) ← 0,C←Rd(7), n=0..6 | Z,C,N,V,H | 1 |
| LSR | Rd | Logical Shift Right – Logiczne przesunięcie w prawo | Rd(n)←Rd(n+1),Rd(7) ← 0,C←Rd(0), n=0..6 | Z,C,N,V | 1 |
| ROL | Rd | Rotate Left Through Carry – Obrót w lewo poprzez przeniesienie | Rd(0)←C,Rd(n+1) ← Rd(n),C←Rd(7), n=0..6 | Z,C,N,V,H | 1 |
| ROR | Rd | Rotate Right Through Carry – Obrót w prawo poprzez przeniesienie | Rd(7)←C,Rd(n)←Rd(n+1),C ← Rd(0), n=0..6 | Z,C,N,V | 1 |
| ASR | Rd | Arithmetic Shift Right – Arytmetyczne przesunięcie w prawo | Rd(n) ← Rd(n+1), n=0..6 | Z,C,N,V | 1 |
| SWAP | Rd | Swap Nibbles – Wymiana 4 górnych bitów z 4 dolnymi | Rd(3..0) ↔ Rd(7..4) | żaden | 1 |
| BSET | s | Flag Set – Ustawienie znacznika w rejestrze stanu SREG | SREG(s) ← 1 | SREG(s) | 1 |
| BCLR | s | Flag Clear – Zerowanie znacznika w rejestrze stanu SREG | SREG(s) ← 0 | SREG(s) | 1 |
| BST | Rr, b | Bit Store from Register to T – Zapis bitu z rejestru w T | T ← Rr(b) | T | 1 |
| BLD | Rd, b | Bit load from T to Register – Załadowanie bitu z T do rejestru | Rd(b) ← T | żaden | 1 |
| SEC | Set Carry – Ustawienie przeniesienia | C ← 1 | C | 1 | |
| CLC | Clear Carry – Zerowanie przeniesienia | C ← 0 | C | 1 | |
| SEN | Set Negative Flag – Ustawienie znacznika wyniku ujemnego | N ← 1 | N | 1 | |
| CLN | Clear Negative Flag – Zerowanie znacznika wyniku ujemnego | N ← 0 | N | 1 | |
| SEZ | Set Zero Flag – Ustawienie znacznika zera | Z ← 1 | Z | 1 | |
| CLZ | Clear Zero Flag – Zerowanie znacznika zera | Z ← 0 | Z | 1 | |
| SEI | Global Interrupt Enable – Globalne włączenie przerwań | I ← 1 | I | 1 | |
| CLI | Global Interrupt Disable – Globalne wyłączenie przerwań | I ← 0 | I | 1 | |
| SES | Set Signed Test Flag – Ustawienie znacznika znaku wyniku | S ← 1 | S | 1 | |
| CLS | Clear Signed Test Flag – Zerowanie znacznika znakowego | S ← 0 | S | 1 | |
| SEV | Set Two’s Complement Overflow – Ustawienie znacznika nadmiaru U2 | V ← 1 | V | 1 | |
| CLV | Clear Two’s Complement Overflow – Zerowanie znacznika nadmiaru U2 | V ← 0 | V | 1 | |
| SET | Set T in SREG – Ustawienie bitu T w rejestrze stanu | T ← 1 | T | 1 | |
| CLT | Clear T in SREG – Zerowanie bitu T w rejestrze stanu | T ← 0 | T | 1 | |
| SEH | Set Half Carry Flag in SREG – Ustawienie znacznika przeniesienia połówkowego w rejestrze stanu | H ← 1 | H | 1 | |
| CLH | Clear Half Carry Flag in SREG – Zerowanie znacznika przeniesienia połówkowego w rejestrze stanu | H ← 0 | H | 1 | |
| Instrukcje Przesyłu Danych | |||||
| MOV | Rd, Rr | Copy Register – Kopiowanie rejestru | Rd ← Rr | żaden | 1 |
| MOVW | Rd, Rr | Copy Register Pair – Kopiowanie pary rejestrów | Rd+1:Rd ← Rr+1:Rr | żaden | 1 |
| LDI | Rd, K | Load Immediate – Ładowanie stałej | Rd ← K | żaden | 1 |
| LD | Rd, X | Load Indirect – Ładowanie pośrednie | Rd ← (X) | żaden | 2 |
| LD | Rd, X+ | Load Indirect and Post-Increment – Ładowanie pośrednie z postinkrementacją | Rd ← (X), X ← X + 1 | żaden | 2 |
| LD | Rd, -X | Load Indirect and Pre-Decrement – Ładowanie pośrednie z predekrementacją | X ← X - 1, Rd ← (X) | żaden | 2 |
| LD | Rd, Y | Load Indirect – Ładowanie pośrednie | Rd ← (Y) | żaden | 2 |
| LD | Rd, Y+ | Load Indirect and Post-Increment – Ładowanie pośrednie z postinkrementacją | Rd ← (Y), Y ← Y + 1 | żaden | 2 |
| LD | Rd, -Y | Load Indirect and Pre-Decrement – Ładowanie pośrednie z predekrementacją | Y ← Y - 1, Rd ← (Y) | żaden | 2 |
| LDD | Rd,Y+q | Load Indirect with Displacement – Ładowanie pośrednie z przesunięciem | Rd ← (Y + q) | żaden | 2 |
| LD | Rd, Z | Load Indirect – Ładowanie pośrednie | Rd ← (Z) | żaden | 2 |
| LD | Rd, Z+ | Load Indirect and Post-Increment – Ładowanie pośrednie z postinkrementacją | Rd ← (Z), Z ← Z+1 | żaden | 2 |
| LD | Rd, -Z | Load Indirect and Pre-Decrement – Ładowanie pośrednie z predekrementacją | Z ← Z - 1, Rd ← (Z) | żaden | 2 |
| LDD | Rd, Z+q | Load Indirect with Displacement – Ładowanie pośrednie z przesunięciem | Rd ← (Z + q) | żaden | 2 |
| LDS | Rd, k | Load Direct from data space – Ładowanie bezpośrednie z przestrzeni danych | Rd ← (k) | żaden | 2 |
| ST | X, Rr | Store Indirect – Zapis pośredni z indeksem X | (X) ← Rr | żaden | 2 |
| ST | X+, Rr | Store Indirect and Post-Increment – Zapis pośredni z postinkrementacją z indeksem X | (X) ← Rr, X ← X + 1 | żaden | 2 |
| ST | -X, Rr | Store Indirect and Pre-Decrement – Zapis pośredni z predekrementacją z indeksem X | X ← X - 1, (X) ← Rr | żaden | 2 |
| ST | Y, Rr | Store Indirect – Zapis pośredni z indeksem Y | (Y) ← Rr | żaden | 2 |
| ST | Y+, Rr | Store Indirect and Post-Increment – Zapis pośredni z postinkrementacją z indeksem Y | (Y) ← Rr, Y ← Y + 1 | żaden | 2 |
| ST | -Y, Rr | Store Indirect and Pre-Decrement – Zapis pośredni z predekrementacją z indeksem Y | Y ← Y - 1, (Y) ← Rr | żaden | 2 |
| STD | Y+q,Rr | Store Indirect with Displacement – Zapis pośredni z przesunięciem z indeksem Y | (Y + q) ← Rr | żaden | 2 |
| ST | Z, Rr | Store Indirect – Zapis pośredni z indeksem Z | (Z) ← Rr | żaden | 2 |
| ST | Z+, Rr | Store Indirect and Post-Increment – Zapis pośredni z postinkrementacją z indeksem Z | (Z) ← Rr, Z ← Z + 1 | żaden | 2 |
| ST | -Z, Rr | Store Indirect and Pre-Decrement – Zapis pośredni z predekrementacją z indeksem Z | Z ← Z - 1, (Z) ← Rr | żaden | 2 |
| STD | Z+q,Rr | Store Indirect with Displacement – Zapis pośredni z przesunięciem z indeksem Z | (Z + q) ← Rr | żaden | 2 |
| STS | k, Rr | Store Direct to data space – Zapis bezpośredni w przestrzeni danych | (k) ← Rd | żaden | 2 |
| LPM | Load Program Memory – Ładowanie z pamięci programu | R0 ← (Z) | żaden | 3 | |
| LPM | Rd, Z | Load Program Memory – Ładowanie z pamięci programu | Rd ← (Z) | żaden | 3 |
| LPM | Rd, Z+ | Load Program Memory and Post-Increment – Ładowanie z pamięci programu z postinkrementacją | Rd ← (Z), Z ← Z + 1 | żaden | 3 |
| SPM | Store Program Memory – Zapis w pamięci programu | (Z) ← R1:R0 | żaden | – | |
| IN | Rd, A | In From I/O Location – Odczyt z komórki we/wy | Rd ← I/O(A) | żaden | 1 |
| OUT | A, Rr | Out To I/O Location – Zapis do komórki we/wy | I/O(A) ← Rr | żaden | 1 |
| PUSH | Rr | Push Register on Stack – Zapis rejestru na stos | STACK ← Rr | żaden | 2 |
| POP | Rd | Pop Register from Stack – Pobranie rejestru ze stosu | Rd ← STACK | żaden | 2 |
| Instrukcje Sterujące Mikrokontrolerem | |||||
| NOP | No Operation – Operacja pusta | żaden | 1 | ||
| SLEEP | Sleep – Wejście w tryb uśpienia (zobacz na opis Sleep) | żaden | 1 | ||
| WDR | Watchdog Reset – Reset licznika zegarowego (zobacz na opis WDR) | żaden | 1 | ||
| BREAK | Break – Przerwanie wykonywania programu (zobacz na opis BREAK) | żaden | N/A | ||
![]() |
Zespół Przedmiotowy Chemii-Fizyki-Informatyki w I Liceum Ogólnokształcącym im. Kazimierza Brodzińskiego w Tarnowie ul. Piłsudskiego 4 ©2026 mgr Jerzy Wałaszek |
Materiały tylko do użytku dydaktycznego. Ich kopiowanie i powielanie jest dozwolone pod warunkiem podania źródła oraz niepobierania za to pieniędzy.
Pytania proszę przesyłać na adres email:
Serwis wykorzystuje pliki cookies. Jeśli nie chcesz ich otrzymywać, zablokuj je w swojej przeglądarce.
Informacje dodatkowe.