Ich riskier trotzdem mal ne Erklärung, da ich un ne Stunde drüber gegrübelt hab:)

Also mit folgendem Code sollte die Gaußformel korrekt berechnet werden...
Ich hab nur statt der Adressen 120-122 die Adressen 918 (Eingabe) und 919(Ausgabe) verwendet, damit man in dem Demoassembler von Deinem Link das gleich austesten kann.

Da Problem bei Deinem Code ist, dass in 122 immer nur neu geschrieben wird, ohne dass die bisher berechnete Summe benutzt wird.
Außerdem ist mir nicht klar, wieso Du 3 Adressen brauchst? In einer Adresse wird die Eingangszahl immer runtergezählt und in der anderen die Summe aufaddiert. Nur wenn die Eingabe in dem Register unverändert bleiben soll, bräuchte man ein drittes zum Spiechern der Eingabe, aber das stand ja nicht in der Aufgabe.

Inhalt
900 SET 0
901 919
902 MOV 1
903 918
904 CJP
905 920
906 ADD 1
907 919
908 STO
909 919
910 MOV 1
911 918
912 SUB 0
913 1
914 STO
915 918
916 JMP
917 902

918 6


Algorithmus:
1. Setze Ausgabevariable auf 0 (900,901)
2. Addiere Eingabevariable zur Ausgabevariable (902,903,906-909)
3. Ziehe 1 von der Eingabevariable ab (910-915)
4. Solange Eingabevariable größer 0 fahre mit 2. fort (904,905,916,917)

@elgi
Man muss immer zwei Zeilen als eine lesen, mov 1 9xx bewegt den Speicherinhalt der Adresse 9xx ins Register

Reicht das so, oder soll ich den Beispielcode des Lehrers noch erklären?