Forum: Mikrocontroller und Digitale Elektronik Assembler-Befehl


von larsen (Gast)


Lesenswert?

Hi Jungs und Mädels,

es gibt doch in Assembler den "cpse"-Befehl, der zwei Register
vergleicht und im Falle der Gleichheit den nächsten Befehl überspringt.
Ich möchte nun aber den nächsten Befehl im Falle der Ungleichheit
überspringen, bräuchte also so eine Art "Compare, skip if not
equal"-Befehl. Wie löst ihr solche Sachen?

von crazy horse (Gast)


Lesenswert?

cp
breq/brne

von larsen (Gast)


Lesenswert?

Den Gedanken hatte ich auch schon, aber dann kann ich nicht mit rcall
arbeiten, es sei denn ich versehe jede Zeile mit einem Label;-)

Die Situation ist folgende:

Ich habe ein Byte, welches ich nicht kenne. Ich möchte je nach der
Zahl, die im Byte steht, verschiedene Unterprogramme anspringen. Die
grundsätzliche Struktur habe ich mir so gedacht:

cpsne byte, Zahl 1   ; Compare, skip if NOT equal
rcall UP 1
cpsne byte, Zahl 2
rcall UP 2
usw.

klar was ich machen will? So eine Art Case-Anweisung.

VG larsen

von crazy horse (Gast)


Lesenswert?

cpi rx, zahl_1
brne test_zahl2
rcall up1
test_zahl2:
.
.
.

von larsen (Gast)


Lesenswert?

Stimmt, das ginge. Danke!

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.