Gast
#1527708
Hi zusammen,
hab ne Frage zu zwei Zeilen des Programms einer Übungsaufgabe aus einem
Assembler-Buch.
Aufgabe:
Die Berechnung der Summe einer Zahlenserie (z.B. 1,2,3,4,5) soll
durchgeführt werden. Die Länge der Serie steht in ADR 31H (z.B. 05H) und
die Serie selbst beginnt ab Speicherstelle ADR 32H. Das Ergebnis soll in
ADR 30H abgelegt werden.
Lösung im Buch:
MOV A,#00H ; Setze Akku auf den Wert null
MOV R0,31H ; Lade Serienlänge (z.B. 05H) in Register R0
MOV R1,#32H ; Lade Wert 32H in Register R1
M1: ADD A,@R1 ; Addiere Inhalt d. ADR in R1 mit Akkuinhalt
MOV 30H,A ; Ergebnisspeicherung
INC R1 ; Erhöhe R1 um 1 (nächste Zahl der Serie)
DJNZ R0,M1 ; Verringere R0 um 1 (z.B. auf 04H) und
springe
; zu M1, wenn ergebnis nicht null ist
Meine Frage: Kann ich in Zeile 3 anstelle des Wertes 32H auch die ADR
32H ins register R1 laden, wenn ich dann in Zeile 4 das "@" weglasse?
Etwa so:
...
MOV R1,32H ; Lade Wert aus ADR 32H in Register R1
M1: ADD A,R1 ; Addiere Wert aus Register R1 mit Akkuinhalt
...
Danke schon mal für die Antwort!
Stefan