Hallo,
ich komme auch nicht darauf, dass n^2 in Hauptspeicheradresse n gespeichert wird, sondern auf die Speicherung von 2n in Adresse n. Ich habe es mir so überlegt:
Annahme: n=2, also R8 = n = 2
-lade Registerinhalt R8 in Akkumulator, also R8 = n = 2
outerloop
R8 = n = 2 ≠ 0, also springe nicht zur Marke „fertig“
R1 = R8 = n = 2 , also in R1 befindet sich jetzt ebenfalls der Inhalt aus R8, nämlich 2
R2 = R8 = n = 2 , also in R2 befindet sich jetzt ebenfalls der Inhalt aus R8, nämlich 2
R3 = 0 , also speichere in R3 die Konstante 0
innerloop 1. Durchgang
R2 + R3 = R3
n + 0 = R3
2 + 0 = R3 , also neues R3: R3 = n = 2
R1 - 1 = R1
n - 1 = R1
2 -1 = R1 , also neues R1: R1 = (n-1) = (2-1) = 1
-lade Registerinhalt R1 in Akkumulator, also R1 = (n-1) = (2-1) = 1
R1 = (n-1) = (2-1) = 1 ≠ 0 also springe nicht zu Marke „store“
innerloop 2. Durchgang
R2 + R3 = R3
n + n = R3
2 + 2 = R3 , also neues R3: R3 = 2n = 4
R1 - 1 = R1
(n-1) - 1 = R1
1 -1 = R1 , also neues R1: R1 = (n-2) = (2-2) = 0
-lade Registerinhalt R1 in Akkumulator, also R1 = (n-2) = (2-2) = 0
R1 = (n-2) = (2-2) = 0 also springe zu Marke „store“
store
speichere den Wert aus R3, also R3 = 2n an Stelle im Hauptspeicher, die durch R2 gegeben ist, also R2 =n
R8 - 1 = R8
n - 1 = R8
2 - 1 = R8, also neues R8: R8 = (n-1) = (2-1) = 1
-lade Registerinhalt R8 in Akkumulator, also R8 = (n-1) = (2-1) = 1
springe zu Marke „outerloop“
Also wäre der erste Durchgang von „outerloop“ jetzt beendet.
Wo liegt der Fehler?