Forum: Mikrocontroller und Digitale Elektronik r16 < 32?


von Tobias Müller (Gast)


Lesenswert?

Ich möchte überprüfen ob r16 einen Wert kleiner 32 enthält. Ich dachte 
an
  subi r16, 32
  brmi hierherwennskleinerist

Das scheint aber nur zu funktionieren wenn r16 max 127 als Werterreicht. 
Ich will aber bis 255 arbeiten. Wie sorge dafür das er hier >128 nicht 
als negativ interpretiert?

Grüße

von mikki merten (Gast)


Lesenswert?

Verwende einfach
brlo  hierwennskleinerist

von mng (Gast)


Lesenswert?

cpi r16,32
brlo hierherwennskleinerist

von Tobias Müller (Gast)


Lesenswert?

Wenn ich <138 machen will schlägt diese Methode aber fehl, oder? Bei mir 
scheint es dann nicht mehr zu funktionieren.

Ich muss nämlich noch abfragen ob r16 zufällig zwischen 128 oder 135 
liegt. Da wollte ich erst überprüfen ob es kleiner 136 ist und dann auch 
noch größer als 128, oder gibt es da ne besser Lösung?

Grüße

von Peter K. (Gast)


Lesenswert?

Hier eine Tabelle mit dem Compare und dem Sprungbefehl.

Vergleich___________SIGNED___UNSIGNED

Rd>Rr____cp Rr,Rd___BRLT_____BRLO
Rd>=Rr___cp Rd,Rr___BRGE_____BRCC
Rd==Rr___cp Rd,Rr___BREQ_____BREQ
Rd!=Rr___cp Rd,Rr___BRNE_____BRNE
Rd<=Rr___cp Rr,Rd___BRGE_____BRSH
Rd<Rr____cp Rd,Rr___BRLT_____BRLO

Peter

von Tobias Müller (Gast)


Lesenswert?

Super! 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.