mikrocontroller.net

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


Autor: n3210 (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier steht alles drin, was Du wissen mußt:
http://www.mobile.informatik.uni-muenchen.de/Vorle...

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

Autor: Wolfram (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Simon Heß (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!?

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.