mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Umwandlung


Autor: Julien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

kann mir jemand bei folgendem helfen.

ich möchste unten stehen Code im prinzip rückwärts ablaufen 
lassen.(Bildlich gesprochen)

Momentan habe ich 3 8Bit register und erstelle daraus 1 16 Bit register.

Jetzt möchte ich aber aus einem 16bit register 3 8bit register 
erstellen.

Hier ist der code von 3x8Bit in 1x16Bit:

anfang:

  MOV XL, Einer
  LDI XH, 0

m1:

  DEC Zehner
  BRMI m2
  SUBI XL, -10
  RJMP m1

m2:

  DEC Hunderter
  BRMI m3
  SUBI XL, low(-100)
  SBCI XH, high(-100)
  RJMP m2

m3:

.....


kann mir da jemand helfen bzw. sagen wie der Code aussehen muß???

Vielen dank schon einmal

Gruß Julien

Autor: Julien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
noch ein kleiner anhang,

eigentlich ist mir schon klar was zu machen ist, allerdings habe ich das 
problem mit dem übertrag zwischen XH und XL

man kann zwar von XL 100 abziehen aber wie dann weiter vorgehen???

Julien

Autor: Julien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
^Vielleicht war die Beschreibung nicht so gelungen.

Ich versuche es nochmal:

Im prinzip geht es darum aus einer 9bit zahl die sich in 2 
8Bit-Registern befindet 3 Digits (BCD) zu erstellen.

Mit der Subtraktionsmethode müsste das irgendwie machbar sein, leider 
weiß ich nicht wie ichs umsetzten muss.

Vielleicht gibt es noch jemand der mir hierbei helfen kann.

Julien

Autor: Julien (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dank an mmerten,

Es funktioniert jetzt teilweise.

die hunderter zu subtrahieren geht, aber irgendwie kommt ein total 
falsches ergebnis bei den 10ern und einern raus da immer einmal zuviel 
100 subtrahiert wird

wie kann man das problem beheben.

hier der teilweise funktionierende Code:

anfang:

  clr temp
  clr tempL
  clr tempH

m4:

  SUBI XL, low(100)
  SBCI XH, high(100)
  BRMI m5
  inc tempH
  rjmp m4

; ab hier entsteht das Problem

m5:

  SUBI XL, 10
  BRMI m6
  inc tempL
  rjmp m5

m6:

  mov XL, temp

Julien

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.