AVR-Assembler-Referenz

 

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 ...

 

 

Anfang

BREQ

Ende

 

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)

 

 

Anfang

BRLO

Ende

 

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)

 

 

Anfang

BRNE

Ende

 

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)

 

 

Anfang

BRSH

Ende

 

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)

 

 

Anfang

COM

Ende

 

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)

 

 

Anfang

CP

Ende

 

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)

 

 

Anfang

CPI

Ende

 

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)

 

 

Anfang

DEC

Ende

 

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)

 

 

Anfang

IN

Ende

 

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)

 

 

Anfang

INC

Ende

 

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)

 

 

Anfang

LDI

Ende

 

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)

 

 

Anfang

OUT

Ende

 

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)

 

 

Anfang

POP

Ende

 

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)

 

 

Anfang

PUSH

Ende

 

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)

 

 

Anfang

RCALL

Ende

 

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)

 

 

Anfang

RET

Ende

 

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)

 

 

Anfang

RJMP

Ende

 

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)

 

 

Zurück zur Auswahlseite            Zur Hauptseite