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
@ 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.