Forum: Mikrocontroller und Digitale Elektronik Wert aus Tabelle suchen


von markus (Gast)


Lesenswert?

hallo zusammen!

habe ein problem mit einer tabelle die aus 16bit zahlen besteht.
insgesamt habe ich 15 bereiche, die jeweils durch eine untere und eine 
obere grenze begrenzt sind. arbeite mit einem mega8 und in assembler.

nun möchte ich aus einer vorhergehenden berechnung herausfinden in 
welchem dieser bereiche sich mein ergebnis befindet.
ich habe das schon mal mit 8bit zahlen realisiert, dort war es recht 
einfach. habe damals mittels "brge" und "brlt"  die zahlen verglichen 
und konnt so den bereich recht einfach eingrenzen.

das prinzip ist mir schon klar nur wie setzte ich das in assembler um. 
ich müsste zuerst das high byte der oberen grenze mit dem high byte 
meines ergebnisses vergleichen und anschließend mit der unteren grenze. 
sollten die die highbytes gleich sein müsste ich mir noch die low bytes 
ansehen.
ich schaffe es einfach nicht einen ordentlichen assembler code zu 
schreiben in dem ich diese idee umsetzen kann.
irgendwie steh ich aufm schlauch...
kann mir jemand helfen?
vielen dank!
markus

von Falk B. (falk)


Lesenswert?

@ markus (Gast)

>das prinzip ist mir schon klar nur wie setzte ich das in assembler um.
>ich müsste zuerst das high byte der oberen grenze mit dem high byte
>meines ergebnisses vergleichen und anschließend mit der unteren grenze.
>sollten die die highbytes gleich sein müsste ich mir noch die low bytes
>ansehen.

Nöö, du musst mehrstellige Arithmetik mit Übertrag machen. Also CP + CPC 
verwenden. Sie wie in

AVR-Tutorial: Arithmetik
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Vergleiche#CPC_-_Compare_with_Carry

MfG
Falk

von markus (Gast)


Lesenswert?

vielen dank für die links!
werde sie mir gleich mal ansehen!

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.