Hier findet sich eine Auflistung der vorhanden Assembler-Befehle für den Atmel AVR. Einfach auf den gewünschten Befehl klicken und es wird automatisch zur Beschreibung gesprungen.
In der Syntax werden diverse Abkürzungen verwendet. Diese bedeuten:
ap | = Programmadresse innerhalb 4 kByte Bereich. Von aktueller Adresse-2047 bis aktuelle Adresse+2048 |
ar | = Programmadresse innerhalb einer Kurzdistanz. Von aktueller Adresse-64 bis aktuelle Adresse+63 |
k8 | = 8 Bit Konstante. Werte von 0-255 |
p | = Portadresse im Portbereich. Werte von 0-255 |
rd | = Direkt adressierbare Register. r16-r31 möglich |
reg | = Indirekt oder direkt adressierbare Register. r0-r31 möglich |
BREQ | BRLO | BRNE | BRNE | COM | CP | CPI | DEC |
IN | INC | LDI | POP | PUSH | OUT | RCALL | RET |
RJMP | |||||||
Tabelle ist noch nicht vollständig. Wird noch ergänzt ... |
Springt zur einer anderen Programmposition innerhalb einer Kurzdistanz, wenn das Z-Flag gesetzt ist (Vorheriger Vergleich ergibt: Gleich).
Syntax
breq ar
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus wenn kein Sprung erfolgt.
2 Taktzyklen wenn ein Sprung erfolgt.
Befehlsgröße
1 Wort (2 Bytes)
Springt zur einer anderen Programmposition innerhalb einer Kurzdistanz, wenn das C-Flag gelöscht ist (Vorheriger Vergleich ergibt: Kleiner).
Syntax
brlo ar
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus wenn kein Sprung erfolgt.
2 Taktzyklen wenn ein Sprung erfolgt.
Befehlsgröße
1 Wort (2 Bytes)
Springt zur einer anderen Programmposition innerhalb einer Kurzdistanz, wenn das Z-Flag gelöscht ist (Vorheriger Vergleich ergibt: Ungleich).
Syntax
brne ar
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus wenn kein Sprung erfolgt.
2 Taktzyklen wenn ein Sprung erfolgt.
Befehlsgröße
1 Wort (2 Bytes)
Springt zur einer anderen Programmposition innerhalb einer Kurzdistanz, wenn das C-Flag gesetzt ist (Vorheriger Vergleich ergibt: Größer oder Gleich).
Syntax
brsh ar
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus wenn kein Sprung erfolgt.
2 Taktzyklen wenn ein Sprung erfolgt.
Befehlsgröße
1 Wort (2 Bytes)
Verknüpft das angegebene Register durch ein Einer-Komplement (Einfache bitweise Negierung).
Syntax
com reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | X | 0 | X | X | 1 |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Vergleicht den Inhalt zweier Register und setzt entsprechend die Flags. Der Inhalt der Register bleibt hierbei unverändert.
Syntax
cpi reg,reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | X | X | X | X | X | X |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Vergleicht den Inhalt des Registers mit dem angegeben 8 Bit Wert und setzt entsprechend die Flags. Der Inhalt des Registers bleibt hierbei unverändert.
Syntax
cpi rd,k8
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | X | X | X | X | X | X |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Verringert den Inhalt des angegebenen Registers um 1. Die Flags werden, wie bei einer Subtraktion von 1 gesetzt.
Syntax
dec reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | X | X | X | X | - |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Holt einen Wert aus dem Portbereich mit der angegebenen Adresse und lädt diesen in ein Register.
Syntax
in reg,p
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Erhöht den Inhalt des angegebenen Registers um 1. Die Flags werden, wie bei einer Addition von 1 gesetzt.
Syntax
inc reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | X | X | X | X | - |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Lädt ein 8 Bit Wert in ein direkt adressierbares Register.
Syntax
ldi rd,k8
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Schreibt den Inhalt des Registers an die angegebene Adresse im Portbereich.
Syntax
out p,reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
1 Taktzyklus
Befehlsgröße
1 Wort (2 Bytes)
Holt einen Wert vom Stack und speichert diesen im angegebenen Register.
Syntax
pop reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
2 Taktzyklen
Befehlsgröße
1 Wort (2 Bytes)
Speichert den Inhalt des angegebenen Registers auf dem Stack.
Syntax
push reg
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
2 Taktzyklen
Befehlsgröße
1 Wort (2 Bytes)
Ruft ein Unterprogramm auf, welches sich innerhalb eines 4 kByte-Speicherbereichs befindet. Die Rücksprungadresse wird auf dem Stack abgelegt.
Syntax
rcall ap
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
3 Taktzyklen
Befehlsgröße
1 Wort (2 Bytes)
Kehrt aus einem Unterprogramm zum aufrufenden Programmteil zurück. Die nötige Rücksprungadresse wird vom Stack geholt.
Syntax
ret
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
4 Taktzyklen
Befehlsgröße
1 Wort (2 Bytes)
Springt zur einer anderen Programmposition innerhalb eines 4 kByte-Speicherbereichs.
Syntax
rjmp ap
Flags nach Befehlsausführung
I | T | H | S | V | N | Z | C | - = Unbeeinflusst |
- | - | - | - | - | - | - | - |
X = Verändert |
Ausführzeit
2 Taktzyklen
Befehlsgröße
1 Wort (2 Bytes)