Hallo, die angehängte Subroutine soll eine 4stellige Zahl in 2 2stellige Zahlen wandeln. Irgenwo ist aber noch ein Fehler! wenn ich die Zahl "2011" übergebe, kommt "02" und "C2" heraus?
Gast
#2049684
Hi Formatiere erst mal deinen Code. Da verdirbt man sich ja die Augen. Tabulatoren haben nichts im Quelltext zu suchen! MfG Spess
Ok ich habe mal den Code formatiert. Werde ich in Zukunft mal besser drauf achten.
Ok einen Fehler habe nun selbst gefunden: ich habe zum Schluss pop r18 geschrieben statt pop r16
Gast
#2049718
HI >Ok ich habe mal den Code formatiert. >Werde ich in Zukunft mal besser drauf achten. Na, geht doch > ldi r20, 10 > mul r16, r20 ; multipliziere r16 (die > add r16, r17 ; add > mov r19, r16 ; kopiere die Das Ergebnis einer Multiplikation ist in r1:r0. Aber das kannst du dir sparen, wenn du nur durch 100 teilst. MfG Spess
Jo Danke, jetzt geht's
Gast
#2049793
Hi >Jo Danke, >jetzt geht's Wie gesagt, die Multiplikation ist eigentlich unnötig:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
Der Code hat das gleiche Ergebnis. MfG Spess
Gast
#2049795
Hi Korrektur: mov r19, r16 -> mov r19, r17 MfG Spess
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.