0

コマンドは対応するコメントで正しいですか? 「サイズ」、「配列」、「結果」の意味や、それらをコードに組み込む方法など、mips アセンブリ言語を理解するのに苦労しています。

.text 0x00400000 
.align 2
.globl main

 main:

lw $a0, size       # Load the size of array into $a0, using lw
li $a1, 0          # index i
add $a2, $a0, $a1  # a2 contains the sum, initialize a2
li $t2, 4          # t2 contains constant 4, initialize t2

 loop:

mul $t1, $a1, $t2  # t1 gets i*4
lw $a3, Array($t1) # a3 = N[i]
add $a2, $a2, $a3  # sum = sum + N[i] (sum is a2)
add $a1, $a1, 1    # i = i + 1
beq $a1, $a0, STOR # go to STOR if finished
    j loop

STOR:

sw $a2, Result[1]  # store sum at Result, using sw

.data 0x10000000
.align 2
Array: .word 3 6 9 12 15 18 21 24
Size: .word 8
Result: .word 0
4

1 に答える 1

0

これのほとんどは問題なく、実行して確認できます。ただし、問題は、合計の理由で合計をサイズに初期化したことです。代わりに、合計は 0 から開始する必要があります。

変化する:

add $a2, $a0, $a1 # a2 contains the sum, initialize a2

に:

move $a2 $zero

于 2013-09-30T20:28:40.003 に答える