Gast
#792194
Hallo microcontrollerforum, ich versuche den Wert eines Registers dreistellig darzustellen. Dazu habe ich folgenden Code geschrieben: datenwandeln: ;Eingaberegister=Daten wird in 3 Stellen zerlegt clr Hunderter clr Zehner clr Einer cln ;Negativ Flag Löschen s100: ;Hunderter Stelle ermitteln push daten ;daten auf den Stack retten subi daten,100 ;Von Daten 100 abziehen brmi neg100 ;ist das Ergebniss negativ dann springe nach neg100 inc Hunderter ;erhöhe die Hunderter um 1 pop dummi ;Stack in Dummi Laden da Daten nicht negativ rjmp s100 ;weiterer Durchgang neg100: ;Sind Daten negativ dann pop daten ;letztes positive Ergebnis wiederherstellen s10: ;Zehner Stelle ermitteln push daten ;daten auf den Stack retten subi daten,10 ;Von Daten 100 abziehen brmi neg10 ;ist das Ergebniss negativ dann springe nach neg100 inc Zehner ;erhöhe die Zehner um 1 pop dummi ;Stack in Dummi Laden da Daten nicht negativ rjmp s10 ;weiterer Durchgang neg10: ;Sind Daten negativ dann pop daten ;letztes positive Ergebnis wiederherstellen mov Einer,daten ;der Rest müsten die Einer sein ;ausgabe an lcd leider zeigt es sich das dieser Code nur bis einem Wert von 227 dezimal richtig funktioniert. Könnte mir jemand meinen Fehler aufzeigen? mfg T.Mohrs