3
我是mips的新手,我想打印出8个元素数组的最大值和最小值。我看到一个类似于我的问题,但它是通过调用一个函数readArray来完成的,我希望没有这样做。这是迄今为止我所拥有的。我只想知道我现在拥有的是否正确以及如何结束循环。像我写什么打印正确的值如何在Mips中打印出数组的最大值和最小值
.data
X: .word 1, 2, 3, 4, 5, 6, 7, 8
globl main
.text
main:
la $t0, X
lw $s0, 0($t0) #Sets Max to first value in array
move $s1, $s0 #Sets Min to first value in array
addi $t1, $0, 0 #Sets the counter to 0
li $t1, 0 #Index for the array
loop:
bge $t0, 8 EndLoop
bgt X($t1), $s0, SetMax
blt X($t1), $s1, SetMin
addi $t1, $t1, 4 #Increases the index for the array
addi $t0, $t0, 1 #Increments the counter
SetMax:
move $s0, X($t1)
j loop
SetMin:
move $s0, X($t1)
j loop
EndLoop:
li $v0, 1
addi $s0, $s0, 0
addi $si, $s1, 0
syscall
我做错了什么。这里是原始问题: 写入MIPS代码来搜索数组X [8]字以找到最小值和最大值。将最大值存储在寄存器$ s0中,最小值存储在$ s1中。打印至最小和最大画面。 感谢您的帮助!
感谢您如何结束循环的帮助。现在有什么语法错误或任何东西。我只是想知道你的想法,或者如果你看到代码有问题。 – JX30
好吧,一切都很好,如果你想得到你想要的结果,那么你只需要在最后删除两个'addi'。你不需要它们。 – Segmentation