Übung 3 Aufgabe 3b
-
- Erstie
- Beiträge: 21
- Registriert: 30. Okt 2008 21:09
Übung 3 Aufgabe 3b
Hallo Leute,
in Aufgabe 3b im Übungsblatt 3 bin ich auf etwas gestoßen, was ich nicht so recht verstehe. Es geht um das Assemblieren von MIPS Anweisungen. Grundsätzlich gilt, dass jeder Befehl 32 Bits lang ist. Die angegebene Befehlskette beginnt bei 0x00400024. Hiernach müsste sich doch folgende Speicherverteilung ergeben:
0x00400024: xor $t0, $t0, $t0
0x00400028: ori $16, $0, 10
0x0040002C: beq $8, $16, 8
0x00400030: addi $8, $8, 1
0x00400034: j 0x0040002C
0x00400038:
Es werden quasi immer 4 Byte Schritte gemacht. Kann es sein, dass sie letzte Adresse 0x00400038 ist und nicht 0x0040003C, wie es die Musterlösung vorschlägt?
Eine weitere Frage dreht sich um das immediate-Feld beim beq Befehl. Ist es egal, ob ich die Sprungweite in Byte, Half-Word oder Word angebe, solange ich überhaupt angebe, in welcher Einheit zu springen ist, oder gibt es hierfür eine Logik bzw. Regel?
Viele Grüße und gute Nacht
Peter
in Aufgabe 3b im Übungsblatt 3 bin ich auf etwas gestoßen, was ich nicht so recht verstehe. Es geht um das Assemblieren von MIPS Anweisungen. Grundsätzlich gilt, dass jeder Befehl 32 Bits lang ist. Die angegebene Befehlskette beginnt bei 0x00400024. Hiernach müsste sich doch folgende Speicherverteilung ergeben:
0x00400024: xor $t0, $t0, $t0
0x00400028: ori $16, $0, 10
0x0040002C: beq $8, $16, 8
0x00400030: addi $8, $8, 1
0x00400034: j 0x0040002C
0x00400038:
Es werden quasi immer 4 Byte Schritte gemacht. Kann es sein, dass sie letzte Adresse 0x00400038 ist und nicht 0x0040003C, wie es die Musterlösung vorschlägt?
Eine weitere Frage dreht sich um das immediate-Feld beim beq Befehl. Ist es egal, ob ich die Sprungweite in Byte, Half-Word oder Word angebe, solange ich überhaupt angebe, in welcher Einheit zu springen ist, oder gibt es hierfür eine Logik bzw. Regel?
Viele Grüße und gute Nacht
Peter
-
- Nerd
- Beiträge: 570
- Registriert: 10. Jun 2006 14:58
Re: Übung 3 Aufgabe 3b
ja, ich denke Du hast hier Recht, der Befehl nach dem j müsste die Adresse 0x00400038 haben.
schreiben zwar (für uns) beq $8,$16,8, da wir 2 Befehle (bzw. 3) à 4 Byte überspringen.
Da die Befehle aber immer an Wortgrenzen liegen, steht im Befehl in Wirklichkeit der Wortoffset, also nochmal durch 4 geteilt --
die letzten beiden Bits wären ja sonst immer 0 und damit verschwendet.
Der andere Punkt sind die delayed_loads, aber das ist auf den Folien erklärt? (der PC wird bereits während bzw. bei Ausführung des Befehls
um 4 inkrementiert, deshalb beq $8,$16, 8, und nicht 12)
- t
Ich weiss jetzt nicht so genau, was Du meinst -- erstens werden die Sprungadressen im Befehl immer durch 4 geteilt, d.h. wirIst es egal, ob ich die Sprungweite in Byte, Half-Word oder Word angebe, solange ich überhaupt angebe, in welcher Einheit zu springen ist, oder gibt es hierfür eine Logik bzw. Regel?
schreiben zwar (für uns) beq $8,$16,8, da wir 2 Befehle (bzw. 3) à 4 Byte überspringen.
Da die Befehle aber immer an Wortgrenzen liegen, steht im Befehl in Wirklichkeit der Wortoffset, also nochmal durch 4 geteilt --
die letzten beiden Bits wären ja sonst immer 0 und damit verschwendet.
Der andere Punkt sind die delayed_loads, aber das ist auf den Folien erklärt? (der PC wird bereits während bzw. bei Ausführung des Befehls
um 4 inkrementiert, deshalb beq $8,$16, 8, und nicht 12)
- t
-
- Mausschubser
- Beiträge: 86
- Registriert: 3. Mär 2009 14:13
Re: Übung 3 Aufgabe 3b
auch von mir 'ne frage zu der 3b.)
ist kein gültiger befehl, es müsste wenn überhaupt:
lauten 
mal was anderes bzgl. der ankreuzfragen, wieso zum geier ist ganz am anfang: "Was gehört zu einer wissenschaftlich dargestellten Gleitkommazahl?"
die Basis angekruzt, das ist doch totaler käse, zu einer validen IEEE 757 Gleitkommazahl gehören doch nur: Vorzeichen, Exponent und Mantisse, so eine aufgabe hätte mich in der Klausur immerhin 'n halben gekostet...
Edit: Noch was zu der Aufgabe: 4: Ich finde die Aufgabenstellung mehr als verwirrend, ich hätte ohne ein Blick auf die Musterlösung die Multiplikation von IEEE 757 ganz im selben Stil wie ich es in TGI2 gelernt habe implementiert, was einen enormeren umfang hat als die musterlösung die lediglich die gleitkomma-aritmetik unter zuhilfename der gleitkomma-registern benutzt..
hoffe in der klausur wird die aufgabenstellung wirklich klar und deutlich präzisiert, ansonsten könnte es für so manchen fatal ausgehen...
Code: Alles auswählen
addi $t0, 1
Code: Alles auswählen
addi $t0, $t0, 1

mal was anderes bzgl. der ankreuzfragen, wieso zum geier ist ganz am anfang: "Was gehört zu einer wissenschaftlich dargestellten Gleitkommazahl?"
die Basis angekruzt, das ist doch totaler käse, zu einer validen IEEE 757 Gleitkommazahl gehören doch nur: Vorzeichen, Exponent und Mantisse, so eine aufgabe hätte mich in der Klausur immerhin 'n halben gekostet...

Edit: Noch was zu der Aufgabe: 4: Ich finde die Aufgabenstellung mehr als verwirrend, ich hätte ohne ein Blick auf die Musterlösung die Multiplikation von IEEE 757 ganz im selben Stil wie ich es in TGI2 gelernt habe implementiert, was einen enormeren umfang hat als die musterlösung die lediglich die gleitkomma-aritmetik unter zuhilfename der gleitkomma-registern benutzt..
hoffe in der klausur wird die aufgabenstellung wirklich klar und deutlich präzisiert, ansonsten könnte es für so manchen fatal ausgehen...
Re: Übung 3 Aufgabe 3b
Und wie unterscheidest du diese wissenschaftlich dargestellten Gleitkommazahl Zahlen 2.0 * 10^e und 2.0 * 2^e?karimhanif hat geschrieben:mal was anderes bzgl. der ankreuzfragen, wieso zum geier ist ganz am anfang: "Was gehört zu einer wissenschaftlich dargestellten Gleitkommazahl?" die Basis angekruzt, das ist doch totaler käse, zu einer validen IEEE 757 Gleitkommazahl gehören doch nur: Vorzeichen, Exponent und Mantisse, so eine aufgabe hätte mich in der Klausur immerhin 'n halben gekostet...
'Studenten? Ja, du weißt schon. Diese dünnen Leute, meist sehr blaß. Immerhin ist dies eine Universität. Die Studenten gehören dazu, wie Ratten...' Terry Pratchett -Voll im Bilde-
Re: Übung 3 Aufgabe 3b
Schau dir mal die Wikipedia-Seite zum IEEE 754-Standard an, da ist keine Basis vorhanden, weil sie laut Standard auf 2 gesetzt wird. In anderen Darstellungen mag das natürlich anders sein.Farnus hat geschrieben:Und wie unterscheidest du diese wissenschaftlich dargestellten Gleitkommazahl Zahlen 2.0 * 10^e und 2.0 * 2^e?karimhanif hat geschrieben:mal was anderes bzgl. der ankreuzfragen, wieso zum geier ist ganz am anfang: "Was gehört zu einer wissenschaftlich dargestellten Gleitkommazahl?" die Basis angekruzt, das ist doch totaler käse, zu einer validen IEEE 757 Gleitkommazahl gehören doch nur: Vorzeichen, Exponent und Mantisse, so eine aufgabe hätte mich in der Klausur immerhin 'n halben gekostet...
Re: Übung 3 Aufgabe 3b
In der Schnelltestfrage geht es nicht um IEEE754 im Speziellen, sondern um Gleitkommazahlen im Allgemeinen.
Von daher gehört die Basis natürlich dazu, da man Gleitkommazahlen natürlich mit verschiedenen Basen darstellen kann.
Von daher gehört die Basis natürlich dazu, da man Gleitkommazahlen natürlich mit verschiedenen Basen darstellen kann.
Re: Übung 3 Aufgabe 3b
genau das hab ich gemeint! finde daher die aufgabenstellung etwas unterpräzisiertOsterlaus hat geschrieben:...Schau dir mal die Wikipedia-Seite zum IEEE 754-Standard an, da ist keine Basis vorhanden, weil sie laut Standard auf 2 gesetzt wird. In anderen Darstellungen mag das natürlich anders sein.

"Unter allen menschlichen Entdeckungen sollte die Entdeckung der Fehler die wichtigste sein.", Stanisław Jerzy Lec
-
- Computerversteher
- Beiträge: 317
- Registriert: 30. Okt 2006 21:54
Re: Übung 3 Aufgabe 3b
Ich find die Aufgabenstellung da recht eindeutig... auch zu einer Zahl nach IEEE-soundso-Standard gehört ja schließlich eine Basis, nur dass sie eben in dem Standard schon festgelegt wird und nicht mehr variabel ist.
Die Basis für eine IEEE-754-Zahl muss nur nicht gespeichert werden, da dabei sowieso bekannt sein muss, dass die Zahl nach diesem Standard gespeichert wurde und dadurch implizit auch die Basis 2 bekannt ist.
Die Basis für eine IEEE-754-Zahl muss nur nicht gespeichert werden, da dabei sowieso bekannt sein muss, dass die Zahl nach diesem Standard gespeichert wurde und dadurch implizit auch die Basis 2 bekannt ist.