www.mikrocontroller.net

Forum: PC-Programmierung Verstehe MIPS Übersetzung nicht


Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Leute, ich verstehe gerade eine MIPS Assembler Lösung in einer 
Klausur nicht wirklich. Man sollte da ein C-Code in MIPS übersetzen.

do
  i = i + j;
while ( A[i] == k )

Nehmen Sie an, dass die Variablen i, j und k in den Registern $s3, $s4 
und $s5 stehen und dass sich die Anfangsadresse von A im Register $s6 
befindet. Dabei ist A ein Feld aus 32-Bit Integerzahlen. Verwenden Sie 
die Register $t0 und $t1 zur Speicherung temporärer Variablen.

Muserlösung sagt nun folgendes:

Loop:
add $s3, $s3, $s4
add $t1, $s3, $s3
add $t1, $t1, $t1
add $t1, $t1, $s6
lw $t0, 0($t1)
beq $t0, $s5, Loop


Die erste und letzte Zeile ist klar, nicht klar ist die Berechnung der 
Adresse, in der A[i] steht. Mein i steht ja nach der Berechnung in $s3. 
$s6 gibt an, wo A anfängt. Müsste es dann nicht

add $ti, $s3, $s6
lw $t0, 0($t1)

sein? Oder verstehe ich da irgendetwas falsch?

Autor: Arc Net (arc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
add $s3, $s3, $s4 ; i = i + j
add $t1, $s3, $s3 ; t1 = 2 * i
add $t1, $t1, $t1 ; t1 = 2 * t1 ( = 4 * i)
add $t1, $t1, $s6 ; t1 = (4 * i) + Anfangsadresse
lw $t0, 0($t1)
beq $t0, $s5, Loop

32-Bit = 4-Bytes...

Autor: Andi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

danke dir!

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.