SRAM Inhalte vergleichen

OP #1676548
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:
1
ld      temp, y+
2
ld      data, x+
3
cp      temp,data

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

Gruß,

guitero
Persönliche Seite #1676610
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
Persönliche Seite #1676618
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?

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren