Klausur vom 13.5.12 Aufgabe 3.5

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

Klausur vom 13.5.12 Aufgabe 3.5
Hallo :slight_smile:

Ich komme bei dieser Aufgabe irgendwie nicht so richtig klar. Könnte mir hier jemand helfen? Die Ersetzungsstrategier ist kein Problem,nur allgemein,was ich genau reinschreiben soll…
Ein ähnliches Problem habe ich auch bei Aufgabe 2.2.

Lg
Eigelb


HI

Also ich kann nur was zur 2.2 sagen die 3.5 verstehe ich auch nicht wirklich

zu 2.2.
Also letzt entlich soll mann eigentlich nur assembler code lesen und verstehen können was die einzelnen befehle machen.
z.b.
zeile 6: Speicherzugriff 1 | Lade aus der speicheradresse … den wert in das register eax
zeile 10: Speicherzugriff 0 | Lade die Unterfunktion fib oder springe zur zeile 15 oder so ähnlich

Finde die aufgabe ist hässlich gestellt mit dem begriff Bedeutung, oben drüber haben sie ja geschreiben geben sie auch an was der befehl macht. Ist für mich irgendwie immer noch das selbe.
So habe ich jedenfalls die aufgabe verstanden.
Hoffe aber ich konnte dir helfen.


Ja so ähnlich hatte ich mir das auch gedacht…nur ist die Aufgabe wirklich blöd gestellt…
Aber muss man bei “call” nicht noch dazuschreiben, dass hier der Stack verwendet wird? Ich habe auch keine Ahnung wie genau sie die “Bedeutung” brauchen,da kann man ja nen halben Roman schreiben.

Lg Eigelb


zeile 6 und zeile 10 haben jeweils einen Speicherzugriff (Laden des Befehls). In Zeile 6 wird die Startadresses des Arrays zum Speichern der Ergebnisse von fib nach eax geschoben und anschließend als Parameter auf den Stack gepusht. Die call-Instruktion sichert den aktuellen Wert von eip auf den Stack lädt den Offset nach eip und führt den Befehl an der Stelle aus.


Zur Aufgabe 3.5 findet sich im Wiki ein Lösungsvorschlag


Wie kommt man da auf die 2008?


Guck dir mal Zeile 4 und Zeile 8 in dem Programm an.


Und dann wieder Zeile 2? Aber wir sind doch in Zeile 9 ? Sry ich steh bei der Aufgabe echt auf dem Schlauch

Lg
Eigelb