www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeiger setzen asm


Autor: makro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo
Wahrscheinlich schon etwas zu einfach:
Ich möchte einen Zeiger auf die aktuelle Position eines zweiten Zeigers 
bringen. Wie geht das?

Was ich meine:
ldi XL, $(YL)     oder so
ldi XL, low(Y)

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kopiert Y nach X:
mov XL, YL
mov XH, YH

Zeiger sind auch nur Register :-)

Autor: makro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank
Ich muss halt noch viel lernen.

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Noch einfacher:  Z.B. movw r17:16,r1:r0.

MfG Spess

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
mit MOVW geht das sogar in einem Abwasch...

Jochen Müller

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Haben alle AVR "movw"? Ich meinte mich zu entsinnen, dass nur die Megas 
sowas haben...?

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

'This instruction is not available in all devices. Refer to the device 
specific instruction set summary.'

MfG Spess

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wusst ich doch^^

Autor: Spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>Ich meinte mich zu entsinnen, dass nur die Megas sowas haben...?

Das hat nichts mit der AVR-Familie zu tun, sondern mit der Alter. Neuere 
ATTinys haben z.B. den Befehl.

MfG Spess

Autor: Sven P. (haku) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oder so :-)

Autor: makro (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
also ich muss nochmal nachfragen.

Ich habe zwei Zeiger, einen Lese- und einen Schreibzeiger, die auf einem 
Speicherbereich im SRAM zeigen.

 -------------------------------
 |    |    |    |    |    |    |
 -------------------------------
   ^                         ^
   |                         |
 lese                      schreib


Nun möchte ich (nach einem bestimmten Ereignis) den Lesezeiger auf die 
Position des Schreibzeigers bringen

 -------------------------------
 |    |    |    |    |    |    |
 -------------------------------
                            ^
                            |
                        lese, schreib

Geht das wirklich mit den folgenden Befehlen?
mov XL, YL
mov XH, YH

Wird damit nicht lediglich der Inhalt in die Register R26,R27 geladen?

Autor: Jochen Müller (taschenbuch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
makro,

mov XL, YL
mov XH, YH
ist richtig für Deine Anwendung.

Der Inhalt des Registers ist ja die Speicheradresse.
Um den Inhalt des Speichers zu holen AUF DAS DER POINTER ZEIGT, nimmst 
Du doch LD/LDD.

Jochen Müller

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.