Forum: Mikrocontroller und Digitale Elektronik STD MEGA162 ? Instruction


von Bernhard (Gast)


Lesenswert?

Hallo Leute,

ich möchte über das Register y Daten in den Speicher schreiben und
lesen. Quellcode sieht so aus:

.def    yl       = r28
.def    yh       = r29
.equ Variablen =0x100
.equ test      =variablen+70

ldi yh,high(variablen)
ldi yl,low(variablen)

STD y+(test),temp

AVR Studio assembliert die Zeile STD nicht. Meldet nur Fehler >Illegal
Argument type or count.
Was aber völlig verwirrend ist, das .equ test = variablen+30 ok ist :)
Speicherbereich ist 0x100 - 0x4ff
Was mache ich falsch oder kann bei dem Mega der Speicherbereich nicht
überall angesprochen werden :)

Gruß Bernhard



Gruß Bernhard

von Gerhard Schmidt (Gast)


Lesenswert?

Hallo Bernhard

Wenn ich das richtig sehe, versuchst Du etwas nach y+0x146 zu
schreiben. Das ist zuviel des Guten, weil das Displacement so gross
nicht werden darf. Mache mal aus

.EQU test = variablen + 70

die Zeile

.EQU test = 70

Das dürfte Deiner Intention etwas näher kommen.

MfG
Gerd

von m. merten (Gast)


Lesenswert?

Ein Blick in die Instruction Set Doku oder das HELP von AVR Studio hätte
genügt.
STD Y+Offset,Register und STD Z+Offset,Register erlauben als
Wertebereich für Offset nur 0...63

von Bernhard (Gast)


Lesenswert?

Danke für die Hilfe. 6 Bit als Anhang. Habe ich jetzt verstanden.

Bernhard

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.