私は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
私は何か間違っていますか?ここに元の問題があります: 最小値と最大値を見つけるために配列X [8]ワードを検索するMIPSコードを書いてください。レジスタ$ s0に最大値を格納し、$ s1に最小値を格納します。画面の最小値と最大値に印刷します。 助けてくれてありがとう!
ループを終了する方法をお手伝いしてくれてありがとう。今は構文や何かに間違いがあります。私はちょうどあなたが何を考えているのか、コードに間違っているかを知りたいと思うだけです。 – JX30
うまくいっているようですが、結果が得られたら、最後に2つの 'addi'を削除するだけです。あなたはそれらを必要としません。 – Segmentation