Forum: Mikrocontroller und Digitale Elektronik Umwandlung


von Julien (Gast)


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

von Julien (Gast)


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

von Julien (Gast)


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

von Julien (Gast)


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

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
Noch kein Account? Hier anmelden.