Hi,
kann es sein, dass Du Aufgabe 8 meinst? In Aufgabe 7 geht es um Fehlererkenn- und korrigierbarkeit.
Ich würde mir das Programm anhand eines kleinen Beispiels überlegen – z.B. dass am Anfang R1 = 4 gilt.
1. "Iteration": Da $ R1 \neq 0 $ wird nicht gesprungen, sondern zu R2 (was am Anfang 0 ist) R1 addiert und anschließend von R1 1 abgezogen (also: $ R2 = R1 + R2 = 4 , R1 = R1 - 1 = 4 -1 = 3 $ )
2. "Iteration": analog: $ R2 = R1 + R2 = 3 + 4 , R1 = R1 - 1 = 2 $
3. "Iteration": analog: $ R2 = R1 + R2 = 2 + 3 + 4 , R1 = R1 - 1 = 1 $
4. "Iteration": analog: $ R2 = R1 + R2 = 1 + 2 + 3 + 4 (= 10) , R1 = R1 - 1 = 0 $
5. "Iteration": es gilt $ R1 = 0 $ , von daher ist die Bedingung im Sprungbefehl erfüllt und man springt zu "FERTIG".
Ich hoffe am Beispiel wird deutlich, dass in R2 $ \sum_{i=1}^n i $ berechnet wird.
Viele Grüße
Jonas (Tutor)
PS: Im strengen Sinne werden in Assembler keine Schleifen geschrieben – man springt ja nur durch den Programmcode. Ich denke zum Verständnis ist es aber trotzdem ganz hilfreich, es sich so vorzustellen...