mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik asm: ringspeicher im ROM


Autor: Oz zy (ozzy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin,

ich habe im ROM 256 Byte mit Daten stehen:
Daten: .db 0x01, 0x10, ...
Durch diese Daten möchte ich nun immer wieder durchgehen, und wenn ich 
das Ende erreicht habe, wieder vorne anfangen. Doch wie mache ich das am 
Besten?
cpi ZL, low(Daten<<1+128)
brne ...

Geht das so? Irgendwie fällt mir gerade das Simulieren etwa schwer...

Vielen Dank im Voraus für Eure Hilfe!

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Setz dir einfach nach den Daten noch ein Label und wenn der Z-Pointer 
dessen Adresse erreicht hat, setzt du ihn (den Z-Pointer) zurück auf 
Daten, andernfalls inkrementierst du ihn.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

Leg die Daten auf eine 'runde' Adresse ($100,$200;$300...). Und dann nur 
ZL weiterzählen.

MfG Spess

Autor: Michael U. (amiga)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

lege die Daten mit .org auf eine 256 Byte Grenze und zähle nur ZL im 
Kreis...

Gruß aus Berlin
Michael

Autor: Oz zy (ozzy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, ok, das wäre natürlich eine Lösung. Aber was mache ich, wenn die 
Daten größer werden als 256?

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
  ldi zl, low(2 * array)
m1:
  ldi zh, high(2 * array)
m2:
  lpm r0, z+
  cpi zl, low(2 * array)
  brne m2
  rjmp m1


Peter

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph O. schrieb:
> Aber was mache ich, wenn die
> Daten größer werden als 256?

Auch zh vergleichen.


Peter

Autor: Oz zy (ozzy)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Super, vielen Dank, hat alles geklappt; manchmal steht man echt mit so 
einfachen Dingen auf dem Schlauch...

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.