mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik SRAM Inhalte vergleichen


Autor: Rainer B. (guitero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich möchte zwei Inhalte im SRAM miteinander vergleichen.
Auf dem Anfang des einen Strings steht der y-Zeiger auf dem anderen der 
x-Zeiger. Bisher habe ich den Vergleich etwa so gemacht:
ld      temp, y+
ld      data, x+
cp      temp,data


Gibt es eine elegantere Möglichkeit des Vergleichs, ohne den SRAM Inhalt 
vorher in zwei verschiedene Register zu laden.

Gruß,

guitero

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das hängt von der Prozessorarchitektur ab, die Du geschickterweise nicht 
angegeben hast. Wenn der Prozessor Adressierungsarten bietet, bei denen 
ein oder beide Operanden Speicheradressen sein können, dann gehts, wenn 
nicht, dann nicht.

Man kann allerdings auch mit einem Register arbeiten:

- lade ersten Wert in Register
- subtrahiere zweiten Wert
- prüfe auf 0

Autor: Rainer B. (guitero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

> das hängt von der Prozessorarchitektur ab, die Du geschickterweise nicht
> angegeben hast.

Sorry, ein AtMega162. Kann ja mal passieren.

Aber den Tipp mit dem Subtrahieren find ich schonmal gut.

Gruß,

guitero

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Rainer B. schrieb:
> Aber den Tipp mit dem Subtrahieren find ich schonmal gut.
Wobei der beim AVR nix bringt. Da du eh nicht direkt den Inhalt einer 
Speicherzelle als Operanden angeben kannst (es gehen nur Register oder 
Konstanten) musst du erstmal beide in ein Register laden. Und ein 
Compare ist effektiv eh eine Subtraktion, einzig ein cpse könnte hier 
nützlich sein, weil es Vergleich und Sprung bei ungleich zusammen 
ausführt. Aber kommt es echt auf den letzten Taktzyklus an?

Autor: Rainer B. (guitero)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey,

> Aber kommt es echt auf den letzten Taktzyklus an?

Nee, kommt es nicht. Aber hätte ja sein können das soetwas möglich ist. 
Geht natürlich auch so ohne Probleme.

Danke für eure Beiträge.

Bis zum nächsten Mal!

guitero

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.