Seite 2 von 2

Re: H3/3

Verfasst: 13. Nov 2011 12:57
von Ronny
Das ist natuerlich erlaubt. Extrapunkte gibt es dafuer aber nicht.

Re: H3/3

Verfasst: 13. Nov 2011 13:02
von downsampling
Extrapunkte erwarte ich dafür auch nicht. :)
Obwohl man bei der Konsoleneingabe beachten muss den Stackpointer nach jeder Eingabe wiederherzustellen.

Re: H3/3

Verfasst: 13. Nov 2011 13:25
von thalane
Weiß jemand zufällig, wieso ich einen Speicherzugriffsfehler erhalte, wenn ich zb %eax in meinem Unterprogramm vor dem nächsten Unterprogrammaufruf auf den Stack schreiben möchte?
Habe alle "Zeilen getestet" und sobald ich dort dieses "pushl %eax" einfüge bekomme ich den Fehler?!

Re: H3/3

Verfasst: 13. Nov 2011 13:31
von Ronny
Ich vermute, dass du eine Endlosrekursion erzeugt hast und der Stack irgendwann volllaeuft.

Re: H3/3

Verfasst: 13. Nov 2011 19:49
von JulM
Dürfen wir uns auch gleich zu Anfang ein Array definieren, in dem die Werte gespeichert werden oder wie sollen die Ergebnisse gespeichert werden?
Oder reicht es schon sie einfach zur Laufzeit auszugeben?

Re: H3/3

Verfasst: 13. Nov 2011 20:51
von downsampling
Die Zwischenergebnisse selber kannst du ja auch in einem Register speichern. Es ist lediglich erforderlich die Spalte und Zeile auf den Stack zu pushen um zu wissen wo man ist.(immerhin terminiert der Algorithmus ja nicht wegen dem Wert des Endergebnisses)

Re: H3/3

Verfasst: 13. Nov 2011 20:56
von Ronny
Ich zitiere auch nochmal die Aufgabenstellung.
Schreiben Sie ein Assemblerprogramm, das zu Beginn in den Variablen z und s die Zeile und die Spalte eines Elements
enthält und mit Hilfe der obigen Formel rekursiv den Wert p(z, s) berechnet.

Das heist, Eingabe sind Spalte(s) und Zeile(z) eines Elements. Ausgabe ist nur der Wert von p(z,s). Also eine einzige Zahl.

Re: H3/3

Verfasst: 13. Nov 2011 21:14
von JulM
Ronny hat geschrieben:Ich zitiere auch nochmal die Aufgabenstellung.
Schreiben Sie ein Assemblerprogramm, das zu Beginn in den Variablen z und s die Zeile und die Spalte eines Elements
enthält und mit Hilfe der obigen Formel rekursiv den Wert p(z, s) berechnet.

Das heist, Eingabe sind Spalte(s) und Zeile(z) eines Elements. Ausgabe ist nur der Wert von p(z,s). Also eine einzige Zahl.
Ach Mensch ok, jetzt habe ich die Aufgabenstellung erst richtig verstanden, danke :D
Dabei gebe ich gerade so schöne Dreiecke auf der Konsole aus 8)