Forum: PC-Programmierung Wer kennt sich mit Spim ASM aus?


von n3210 (Gast)


Lesenswert?

Ich habe hier zwei Aufgaben.

1:
Schreiben Sie ein MIPS-Assembler-Programm f¨ur den Simulator SPIM S20,
das die Bin¨ardarstellung
der 32Bit langen Zahl ausgibt, die im Register $a3 steht.
Hinweis: F¨ur diese Aufgabe soll es egal sein, ob Sie die Ausgabe mit
dem niederwertigsten
oder mit dem h¨ochstwertigsten Bit anfangen. Machen Sie die Reihenfolge
kenntlich.


Bei der habe ich keinen Schimmer wie ich das machen soll.


2:
Schreiben Sie ein MIPS-Assembler-Programm f¨ur den Simulator SPIM S20,
das auf verschiedene
Weise auf ein Array im Hautpspeicher zugreift.
Reservieren Sie sich zun¨achst den n¨otigen Speicherplatz im
Data-Segment unter dem Namen
Feld mit der Anweisung:
Feld: .space 884
Sie haben jetzt 884 Byte im Speicher mit dem Namen Feld angelegt.
Sprechen Sie diese
Speicherstellen jetzt wie ein Array vom Typ word mit 221 Eintr¨agen an.
F¨ullen Sie jedes dieser
Elemente mit dem Wert seines Index von einschliesslich i = 0 bis
einschliesslich i = 220.
Sprechen Sie nun denselben Speicherbereich (Feld) wie ein
2-dimensionales Array mit 17
Zeilen und 13 Spalten an. Addieren Sie die Inhalte von allen Zellen,
deren Indizes x = y
sind, und geben Sie die Summe aus.

Hier habe ich das Array schon, jedoch weiß ich nicht wie ich die Summe
ausrechnen kann. Meine Lösung scheitert an den 2 Dimensionen.

von Johannes (Gast)


Lesenswert?

Hier steht alles drin, was Du wissen mußt:
http://www.mobile.informatik.uni-muenchen.de/Vorlesungen/ss00/tgi/doku/Spim_Tutorial.pdf

Hausaufgaben werden im Übrigen hier nicht für Andere gemacht, ist auch
nicht Sinn der Sache.
Zumal Deine Aufgaben sehr einfach sind.

von Wolfram (Gast)


Lesenswert?

>Hier habe ich das Array schon, jedoch weiß ich nicht wie ich die Summe
>ausrechnen kann. Meine Lösung scheitert an den 2 Dimensionen

dann hast du ja verstanden was die Anweisung
.space 884 heisst

Wie mache ich aus einem 1-dimensionalen Feld ein 2-dimensionales?
Ich greife anders zu.
1-dimensional Parameter: element
Adresse=((element)*Elementgröße) + Startadresse deines Feldes

2-dimensional Parameter Spalte,Zeile
Adresse=(Zeile*(Spaltenanzahl des Feldes)+Spalte)*Elementgröße
+Startadresse deines Feldes

Solltest du irgendwelche Fehler in diesen Ausführungen entdecken, so
ist das ein Indiz, dass du es verstanden hast...

von Simon Heß (Gast)


Lesenswert?

Also ich hänge gerade an einer ähnlichen Aufgabe wie (1), und zwar
scheitere ich dabei die einzelnen Bits aus dem Speicher auszulesen...
gibt es da einen komfortablen weg?! Oder muß ich so lange hin und
herschieben bis ich sie habe!?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.