Wert aus Tabelle suchen

Gast #738548
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
#738636
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

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