Frage zu Assembler-Befehl

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
Gast #1527779
Nee.

In der Schleife ab Marke M1 wird R1 als Zeiger auf einen Speicherbereich 
benutzt und es werden durch Erhöhen von R1 und anschliessenden Zugriff 
über @R1 immer Werte aus der nächsten Speicheradresse aufaddiert.

Bei deiner Lösung würde der anfangs aus dem Speicheradresse gelesene 
Wert um eins erhöht und dann aufaddiert. An die anderen Werte im 
Speicherbereich kommst du so nie dran.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 16 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.