Forum: Mikrocontroller und Digitale Elektronik Register vergleichen


von Benjamin (Gast)


Lesenswert?

Hallo,

wie kann ich prüfen, ob ein Register größer oder kleiner als 4 ist?

von crazy horse (Gast)


Lesenswert?

kommt drauf an, welches Register du verwendest. Ab r16 kannst du den
cpi-Befehl verwenden und anschliessend anhand der flags verzweigen.
Liegt dein Operand in r0-r15, geht nur der cp bzw cpse-Befehl, d.h. der
vergleichende Wert muss in einem anderen Register stehen.
Die Flags werden wie bei einer Subtraktion gesetzt, allerdings wird der
Registerinhalt nicht verändert.

von Benjamin (Gast)


Lesenswert?

Ich möchte ein Register zwischen 16 und 31 mit der Zahl 4 vergleichen,
wenn die Zahl größer ist, soll er zu "groesser" springen und wenn sie
kleiner ist zu "kleiner".

Kannst du mir mal einen Assemblercode posten? Mit CPI habe ich das
nämlich versucht, aber welche Register werden denn beeinflusst?

von Matthias (Gast)


Lesenswert?


von crazy horse (Gast)


Lesenswert?

ausnahmsweise, das sind doch Grundlagen, die man eigentlich aus dem
Ärmel schütteln sollte...

cpi r16, 4
brlo kleiner   (if C=1)
breq gleich    (if Z=1)
höher:         (if C=0 und Z=0)

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.