Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Alternativlösung des Programms

–1 Punkt
60 Aufrufe

Hallo, könnte man alternativ auch folgendes Programm schreiben?

LOAD R1

JUMPZERO END

LOOP JUMPZERO END

LOAD R1

MUL R1

ADD R2

STORE R2

LOAD R1

SUB'1

STORE R1

Jump Loop.

oder sollte man schon den Zwischenspeicher benutzen und von unten nach oben, anstatt von oben nach unten zählen? Gibt es dafür einen speziellen Grund?

 

Gefragt 22, Okt 2014 in ASS-AF von utdbu utdbu Tutor(in) (106,580 Punkte)  

Eine Antwort

0 Punkte

Soweit ich sehe, ist dein Assembler korrekt, da egal ist, in welcher Reihenfolge man die i^2 aufaddiert, allerdings glaube ich, dass man 2 Zeilen weglassen könnte, ohne das sich das Ergebnis ändert: das erste JUMPZERO (wird direkt danach nochmal geprüft) und LOAD R1 in Zeile 4, da R1 entweder durch Zeile 1 geladen wird oder wegen dem STORE R1 in R1 und dem Akkumulator das gleiche steht.

Tobias (Tutor)

 

Beantwortet 22, Okt 2014 von utdbu utdbu Tutor(in) (106,580 Punkte)  
von dem unteren JUMP LOOP gelangt man ja immer zu LOOP JUMPZERO END. Aber von wo und wann kommt man zum ersten JUPZERO END in Zeile 2?
Wenn man am JumpZero in Zeile zwei einmal vorbeigelaufen ist, kommt man dort gar nicht mehr hin. Dieser Sprungbefehl ist lediglich zum Abfangen des Spezialfalls n = 0 konstruiert. In diesem Fall springt man dann aus Zeile 2 direkt zum Ende.

Gruß Claudio (Tutor)
...