Hallo, Kann mir jemand sagen, wie ich am besten eine 8-Bit-Dualzahl in ein "LCD-freundliches" Format umwandeln kann? Also, wie gesagt: ich hab ein Byte voll mit 0 und 1. Dieses möchte ich so aufsplitten, dass ich für jede Dezimal-Stelle(hunderter/zehner/einer) ein eigenes Byte hab. Hat jemand ne Routine in Assembler dafür? Wär echt nett. thx marco
das ist ganz einfach, Byte durch 10 teilen, der Rest gibt schon die Einer. Das Ergebnis nochmal durch 10 teilen, Rest ergibt die Zehner, Ergebnis die Hunderter. Zur Umwandlung in ASCII zu jeder Zahl nochmal 0x30 addieren.
Du kannst auch 100 abziehen, bis die Zahl kleiner als 100 ist. Bei jeder Subtraktion erhöhst Du Byte1 um 1. Danach fängst Du an 10 abzuziehen bis das ergebnis kleiner 10 ist und erhöhst Byte2. Byte 3 ist dann der Rest den Du übrig hast. Ist eigentlich ne Division in einzelschritten aber was solls. Eckhard
http://www.atmel.com/atmel/products/prod203.htm avr200, da ist (fast) alles drin, was man so als Assemblerprogrammierer für Multiplikation/Division ganzer Zahlen braucht.
Oh, die Site kannte ich noch nicht. Steht ja wirklich (fast) alles drin :-) Habs aber mit der Subtraction gemacht, da ich Stellen sofort in der richtigen Reihenfolge ausgeben kann, ohne Register für die Zwischenspeicherung zu verwenden. Die Dinger werden nämlich langsam knapp bei mir. thx
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.