Hallo sayuri, ich habe mich mal mit dem MIPS Assembler beschäftigt und hoffe deine Frage beantworten zu können. Deine Frage war wie du erkennen kannst, dass es sich um MAX Wert handelt. Das machen folgende Zeilen:
sltu $t2, $t1, $v0 -> Vergleicht das bisherige Ergebnis in v0 mit dem neuen Wert in t1. In „C“ etwa: t2=(t1 < v0) ? 1:0;
bne $t2, $zero, skip -> wenn der Vergleich NICHT 0 ist, war t1 kleiner als das bisherige und es geht direkt nach „skip“. Wenn nicht wird der dann größere Wert in v0 für den nächsten Vergleich abgelegt und der „Zählwert“ aus t0 in v1 abgelegt. Am Ende enthält v0 den größten aller Werte und v1 die Position im Array die diesen höchsten Wert enthält. Ich hoffe alles richtig interpretiert zu haben. MIPS ist nicht meine Kernkompetenz, habe aber schon einige Assembler kennengelernt. Gruß jobe
Sonstiger Berufsstatus, Punkte: 505
Wenn du verstehst, was jede Zeile macht, kannst du jede Zeile mal in eine Zeile einer "höheren" Programmiersprache übersetzen? (z.B. PHP, Python, Javascript, ...)
─ lerneninverschie 13.03.2021 um 02:06