Forum: Mikrocontroller und Digitale Elektronik Pointer sichern?


von Uwe Blank (Gast)


Lesenswert?

Ich habe da ein problem, kann man den Wert auf den die yh und yl pointer
Zeigen in ein Register sichern.Also nicht der inhalt der in der
Speicherzelle im Programmspeicher steht sondern die
Speicherzellenadresse?

von Tobi H. (tobi-) Benutzerseite


Lesenswert?

Das Y-Register ist doch nur ein anderer Name für 2 normale Register.
Welche steht im Datenblatt (weiss nicht mehr auswendig)

von Uwe Blank (Gast)


Lesenswert?

Sorry ich meinte die Y-Register   Y-register sind R28 und R29.
Ich habe versucht die Wert der Register über STS 0x01a2,r30 ins
Ram zu sichern bekomme aber folgende Fehlermeldung: Invalid Register

von Uwe Blank (Gast)


Lesenswert?

Sorry habe den fehler gefunden , war ein schreibfehler kommt wenn man zu
lange sitzt und Code rein hämmert

von Andi K. (Gast)


Lesenswert?

Warum benutzt Du nicht einfach PUSH zum sichern und POP zum
rücksichern?
 PUSH yl
 PUSH yh
 .....
 POP yh
 pop yh

Wichtig: Beim rücksichern mit POP in umgekehrter Reihenfolge!

Oder mit MOVW (geht schneller):
 MOVW r1:r0,yh:yl (MOVW r0,yl geht auch)
 .....
 MOVW yl,r0 (rücksichern)

Dann darf allerdings r0 und r1 nicht für andere Zwecke benutzt werden,
man kann auch andere, sonst nicht verwendete Register benutzen.

MfG
Andi

von Andi K. (Gast)


Lesenswert?

Meinte natürlich:
 PUSH yl
 PUSH yh
 .....
 POP yh
 pop yl

MfG
Andi

von Michael F. (startrekmichi)


Lesenswert?

>"Dann darf allerdings r0 und r1 nicht für andere Zwecke benutzt
werden,"

und das kann relativ schnell unbeabsichtigt geschehen, weil manche
Befehle r0 und r1 als Zwischen-/Ausgabespeicher nutzen. Also am besten
irgendwo nach r3 bis r15 sichern

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.