Fazit Hausaufgaben 2. Übungsblatt

Thorti
BSc Spammer
BSc Spammer
Beiträge: 1047
Registriert: 1. Dez 2003 11:52
Wohnort: Frankfurt
Kontaktdaten:

Fazit Hausaufgaben 2. Übungsblatt

Beitrag von Thorti »

Hallo,

hier die Erkenntnisse von der Korrektur:

1a) Die meisten haben richtig 61 Befehle gezählt. Auch ein bedingter Sprung, der nicht ausgeführt wird, ist ein ausgeführter Befehl - es muss ja entschieden werden dass nicht gesprungen wird. (darüber wurde ja diesem Thread diskutiert).

1b) Die Verschiebung der Abbruchabfrage ans Ende haben die meisten richtig gemacht. Viele haben jedoch vergessen, am Anfang "blez $s3 end" einzubauen für den Fall dass bound <= 0.

1c) geschenkter Punkt

2a) Hier kamen einige Fehler vor. Ein häufiger war, dass nicht beachtet wude, dass die Adressen in Hexadezimaler Schreibweise vorliegen. Ein weiteres Problem war $ra. Er zeigt immer auf den Befehl, der als nächstes nach dem Rücksprung ausgeführt werden muss (und nicht auf die Adresse des jal-Befehls).

2b) Einige haben übersehen, dass auch im letzten Durchlauf nochmal $ra und $a0 in den Stack geschrieben werden (was zwar unnötig ist, aber so im Code stand). Somit werden 5 Paare $ra und $a gesichert. Ein weiterer böser Fehler: einige wollten an Adresse 0x80000000 schreiben (also über den ursprünglichen Stackpointer). Das ist verboten!

2c) Als Folgefehler aus der 2b wurden oft nur 8 Speicherplätze statt 10 belegt. Ein Speicherplatz entspricht einem Wort (und das entspricht 4 Byte). Somit werden 40 Byte belegt (Anmerkung: halbe Bytes oder irgendwelche ungeraden Bitanzahlen im Bereich von 10^10 sind irgendwie sehr unsinnig...)

So, das waren die Dinge die mir aufgefallen sind.

Gruss Thorti
Assistent zur Vorlesung TGDI im WS 11/12

dammel
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 8. Okt 2004 12:57
Wohnort: Mörfelden-Walldorf
Kontaktdaten:

Beitrag von dammel »

Thorti hat geschrieben: 1b) Die Verschiebung der Abbruchabfrage ans Ende haben die meisten richtig gemacht. Viele haben jedoch vergessen, am Anfang "blez $s3 end" einzubauen für den Fall dass bound <= 0.
Nun also entweder wurde hier im Forum stark in die Irre geleitet, oder die Aufgabenstellung enthält einen groben Fehler.
Wie du schon sagtest wurde im Thread darüber diskutiert ob ein nicht ausgeführter Sprung als Befehl (und somit auch Verzweigung) zählt. Da ja viele zu dem Schluss kamen es sei so, waren also 2 Verzweigungen im Ursprungsprogramm.
Wie soll man das mit "blez $s3 end" Abfrage am Anfang und Abbruchbedingung am Ende denn auf eine Verzweigung reduzieren wie es gefordert war in der Aufgabenstellung?
Denn so sind schon wieder 2!!! drin.

Ich habe auch lange überlegt wie ich es machen soll und hab dann die "blez $s3 end" weggelassen (zwar mit Vemerkt auf dem Blatt aber das ist wohl irrelevant).
Es war die Frage ob man die Aufgabenstellung "erfüllen" will oder auf Richtigkeit setzt.

So wie du es nun erläutert hast wäre es laut Aufgabenstellung falsch (sofern wie im Thread geklärt ein nicht ausgeführter Sprung trotzdem als abgearbeitet zählt) und man hätte das Programm dementsprechend nichtmal modifizieren müssen (da auch so schon 2 Sprünge drin sind).
Aber mit NUR einer Verzweigung hätte man es ohne diese Vernachlässigung der Abfrage am Anfang nicht lösen können.

Frage:
Fehler in der Aufgabenstellung oder
Fehler in der Erläuterung im Thread (und man hätte somit das Prog nicht mal modifizieren müssen)?

Oder hab ich irgendwie was übersehen?
"Manchen gab Gott die Kraft Dinge zu verändern, mir gab er die Kraft zu ertragen was ich nicht ändern kann."
Frederik Hahn

Benutzeravatar
SM
Endlosschleifenbastler
Endlosschleifenbastler
Beiträge: 167
Registriert: 10. Okt 2005 18:11
Wohnort: Darmstadt
Kontaktdaten:

Beitrag von SM »

Du hast übersehen, dass es darum ging, die Branches in der Loop zu reduzieren... das "blez $s3 end" steht - wenn korrekt gesetzt - jedoch nicht in der Loop, sondern davor. (Wird also nur einmal im gesamten Programm aufgerufen).
~ Per aspera ad astra. ~

dammel
Windoof-User
Windoof-User
Beiträge: 28
Registriert: 8. Okt 2004 12:57
Wohnort: Mörfelden-Walldorf
Kontaktdaten:

Beitrag von dammel »

Ok also hab ich was übersehen :D

Demnach vergesst was ich weiter oben geschrieben habe.

(bin aber beruhigt das ich nicht der Einzige war der das übersehen/nicht geschnallt hat :roll:)
"Manchen gab Gott die Kraft Dinge zu verändern, mir gab er die Kraft zu ertragen was ich nicht ändern kann."
Frederik Hahn

Antworten

Zurück zu „Archiv“