PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 8051 Assembler - 32-Bit-Zahl umrechnen auf dezimal



M-M-M
29-06-2006, 19:12
Hi Leute,

ich hab folgendes Problem bei der 8051 Assembler-Progammierung:
Eine 32-Bit-Zahl auf 4 Byte im RAM muss ich in eine Dezimalzahl umrechnen und über die serielle Schnittstelle ausgeben.
Hat jemand eine Idee wie ich das anstellen soll?

Danke für alle Antworten.

Gruß MMM

bischi
29-06-2006, 19:17
Willkommen,


... muss ich in ...
Tönt nach Schulaufgabe... Wie weit bist du denn schon?

Mfg Bischi

peschmae
29-06-2006, 20:24
Ein mögliches grundsätzliches Vorgehen:

- Du substrahierst so oft wies geht 100000 (oder was auch immer die grösste Zahl ist die bei den 32 Bit da rein mag und mit 1000 anfängt mit 000 weitergeht und mit 000 aufhört) und zählst wieviele mal das war -> erste Stelle
- Dann substrahierst du so oft wies geht 10000 und zählst -> zweite Stelle
- Etc

Zwischenfrage: Wie kreiere ich die 1000er?
a) hardcoden (etwas aufwändig für 32 bit Zahlen)
b) du fängst mit 1 an und multiplizierst das K mal mit 10(*). Dann dekrementierst du K jedes mal wenn du eine neue Ziffer herausgefunden hast und erstellst die 1000er-Zahl neu.
(*) *10 ist recht einfach - einfach eine Kopie machen, zwei mal nach links shiften, kopie Addieren und nochmal nach links shiften...

Hoffe das hilft dir etwas weiter. Implementieren musst dus aber selber - 8051er spreche ich nicht und überhaupt - sonst hättest du ja gar nix mehr zu tun.

Könntest auch einfach mal etwas suchen - bist bestimmt nicht der erste der Binär nach BCD oder Ascii konvertiert mit so nem Ding.

MfG Peschmä

M-M-M
02-07-2006, 09:39
Danke für die Antworten.
Von hier aus denke ich krieg ich es hin.
Und ja, es ist eine Schulaufgabe.

Gruß
MMM

quinte17
12-07-2006, 12:49
du kannst auch mit modulo 10 arbeiten, wäre dann allerdings von rechts nach links...

greetz