8 bit Zahl in ASCII Code umwandeln?

Gast #86968
Lesenswert?

Hallo Forumsteilnehmer,

ich habe ein Problem, wo ich jetzt denkmäßig gar nicht mehr
weiterkomme.

In der Speicheradresse 0x0060 liegt die Zahl z.Bps. 42. Diese möchte
ich auf einem LCD Display 2*16 Zeichen ausgeben lassen. Dies bedeutet
ja das ich einmal die 4 und dann die 2 ausgeben lassen muss. Diese
würde ich vorher gerne noch einmal im Speicher ablegen.

also folgendes:

0x0060 -> 00101010
       |
       | Umwandeln und Speichern
       V

0x0060 -> 00000100 = 4
0x0062 -> 00000010 = 2


Ich hoffe ich kann mich ratsuchend an Euch wenden und würde mich über
jede Idee bzw. Anregung freuen.

Gruß
Michel
Gast #86971
Lesenswert?

Hallo Michael,

ist ziemlich simpel : Algorithmus quick and dirty.

1. 10000 von Wert abziehen
2. x inkrementieren
3. Wert > 0 ?
   ja   : ab zu 1.
   nein : ab zu 4.
4. x dekrementieren und ausgeben (oder irgendwo speichern)
5. x = 0, Wert = Wert +10000
6. 1000 von Wert abziehen
7. x inkrementieren
.....
wenn die Sache mit den Zehnern zu Ende ist, dann bleiben nur noch die
Einser.

Kurz gesagt einfach solange die höheren Stellen abziehen, bis es
negativ wird und dann mit der nächstniedrigen Stelle weitermachen. In
asm kann man das schön implementieren, wenn man es richtig gut machen
will, dann muss man ein bißchen tricksen - wurde aber im Forum schon
mal behandelt, wie man das macht (peter dannegger ?)

MfG, Khani

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