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.)

NK 2014, Nr 7: was macht dieser Code?

+1 Punkt
149 Aufrufe
Kann mir bitte jemand erklären was dieser Code macht? Ich verstehe überhaupt nicht was der aussagt.
Gefragt 5, Feb 2016 in 2014-N-01 von updjl updjl Lernwillige(r) (340 Punkte)  
Aufgabe 7 sollte in Kategorie 2014-N-07 gestellt werden, nicht in 2014-N-01. Es wäre gut, wenn Sie das ändern könnten!

Eine Antwort

+1 Punkt
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...
Beantwortet 11, Feb 2016 von ufdzo ufdzo Tutor(in) (102,580 Punkte)  
...