Finden der Max-und Min-Werte der 10-element-array in MIPS
Bin ich immer noch sehr viel ein Neuling, einmal geht es um die MIPS-Programmierung so mit mir tragen. Ich bin versucht, zu schreiben eine Funktion, die geht durch eine 10-element-array und gibt die max-und minimum-Werte des Arrays. Bisher habe ich:
.data
X .word 31, 17, 92, 46, 172, 208, 13, 93, 65, 112
N .word 10
minValue .asciiz "Minimum Value: "
maxValue .asciiz "\nMaximum Value: "
values .asciiz "\nValues divisible by 4: "
.text
main:
la $a0, X
la $a1, N
jal MaxMin
MaxMin:
lw $t0, 0($a0)
swap:
move $t0, $s0
move $s0, $s1
move $s0, $t0
Die MaxMin-Funktion soll zurückgeben, die maximalen und minimalen Werte von dem array X für mich zu drucken. Mein plan ist, gehen Sie durch das array und wenn ein element größer oder kleiner als ein anderes element, bekommen Sie vertauscht mit der swap-Funktion. Das problem ist, ich habe keine Ahnung, wie man über das tun dies, weil ich nicht wirklich wissen, die syntax, die Sie angeblich zu verwenden, beim Umgang mit arrays. Wenn jemand helfen könnte ich würde schätzen es.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Hier eine Idee, wie zu Lesen und zu drucken, die Elemente eines array durch eine Funktion. Würde Vergleiche zu machen und tauschen.
Wie das schreiben des Algorithmus in C erste?
Zur Iteration über ein array in der entsprechenden MIPS-assembly, die Sie laden können, die Zeiger
in
in ein temporäres register:dann dereferenzieren Sie die Zeiger durch das laden der Werte aus dem Speicher:
und schließlich erhöhen Sie den Zeiger in die Schleife: