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

Schöne Ferien!
 

 

Verständnisfragen zur Musterlösung

–1 Punkt
91 Aufrufe

3 Fragen zu der Aufgabe:

1. Wie wird in a) die Floor-Fkt. realisiert?

2. Müsste in b) bei der 4 nicht eine 10 und keine 0 herauskommen oder habe ich etwas falsch verstanden?

3. Es gibt doch verschiedene Schreibweisen für diese Anweisungen, je nachdem ob man direkt hinten angibt, wo das Ergebnis gespeichert wird, oder nicht?

Gibt es auch Programme, die mit beiden Anweisungsarten gleichzeitig arbeiten? Was passiert, wenn man die Ergebnisse nicht immer zwischenspeichert, sondern mehrere Anweisungen wie MUL ADD DIV SUB hintereinander ausführt; hängen dann die Zwischenergebnisse irgendwo in der Luft?

Liebe Grüße

 

Gefragt 25, Nov 2014 in ASS-AB von uafjv uafjv Tutor(in) (167,990 Punkte)  

Eine Antwort

0 Punkte
 
Beste Antwort

1. Beim Befehl DIV wird nur der ganzzahlige Anteil der Division berechnet (z.B. 10 DIV 3 = 3 und nicht 3 1/3). So wird die Floor-funktion realisiert.

2. Ich sehe bei der Aufgabe keine b) :-)

3. Genau. Das Beispiel aus den Vorlesungsfolien unterscheidet sich von dem aus dem Tutorium.

Ich denke es macht keinen Sinn zwei verschiedene Anweisungsarten in einem Assembler Programm zu benutzen.

Angenommen die Schreibweise aus der Vorlesung wird benutzt. Bevor man einen Befehl wie ADD benutzt, lädt man sich den ersten Summanden in das Akkumulatorregister durch den Befehl LOAD . ADD 5 führt jetzt dazu, dass der Wert im Akkumukatorregister um 5 erhöht wird. Nun kann man das Ergebnis entweder in einem anderen Register speichern (mit STORE Zielregister) oder direkt damit weiter rechnen. DIV 2 z.B. teilt das Ergebnis der Addition, das noch im Akkumulator steht dann durch 2 und somit geht das Ergebnis der Addition "verloren",wenn man es nicht extra gespeichert hat. Hoffe das benatowortet deine Frage.

Sven (Tutor)

 

Beantwortet 25, Nov 2014 von uafjv uafjv Tutor(in) (167,990 Punkte)  
...