Forum: Mikrocontroller und Digitale Elektronik Adresse inkrementieren in Assembler


von Christoph (Gast)


Lesenswert?

Hallo,

ich habe eine Schleife in Assembler, bei der bei jedem
Schleifendurchlauf ein neues Register für das Abspeichern von Daten
benutzt werden soll.

Beim ST7 (den ich im Gegensatz zu den AVRs bislang bereits mehrfach in
ASM programmiert habe) schreibt man einfach (irgendeinregister,X) und
inkrementiert X dann einfach bei jedem Durchlauf. Er soll also zunächst
irgendeinregister benutzen, dann das was danach kommt, etc.

Wie löst man das beim AVR?

Gruß
Christoph

:
von Florian (Gast)


Lesenswert?

lds temp,x+...

Dabei wird der Wert ausgelesen, und der Zähler um eins erhöht.


Gruß Florian

von Florian (Gast)


Lesenswert?

sts temp,x+ natürlich, weil du ja speichern willst...

von Andreas K. (andi_k)


Lesenswert?

Und wie wäre es mit "ST X+,rn"?
X ist der 16 Bit Pointer bestehend aus r27:r26, es gibt auch noch Y
(r29:r28) und Z (r31:r30).
rn ist eines der Register r0 bis r31.
STS ist für direkten Speicherzugriff ohne Pointer.
Und beim AVR kommt das Ziel immer zuerst, also "Befehl Ziel,Quelle".

MfG
Andi

von Florian (Gast)


Lesenswert?

auwe.... Schlampigkeitsfehler.... :-)

Beitrag #6126794 wurde von einem Moderator gelöscht.
Beitrag #6126807 wurde von einem Moderator gelöscht.
Beitrag #6126809 wurde von einem Moderator gelöscht.
Beitrag #6126811 wurde von einem Moderator gelöscht.
Beitrag #6126823 wurde von einem Moderator gelöscht.
Beitrag #6126825 wurde von einem Moderator gelöscht.
Beitrag #6126828 wurde von einem Moderator gelöscht.
Beitrag #6126835 wurde von einem Moderator gelöscht.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.