Mips 我下面的代码正确吗?
命令和相应的注释是否正确? 我很难理解mips汇编语言,例如“大小”、“数组”和“结果”的含义,以及如何将它们合并到代码中Mips 我下面的代码正确吗?,mips,mips32,spim,Mips,Mips32,Spim,命令和相应的注释是否正确? 我很难理解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, initia
.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
大多数情况都很好,您可以通过运行它来验证这一点。然而,问题是,出于求和的原因,您已将求和初始化为大小。相反,总和应从0开始 更改:
添加$a2、$a0、$a1#a2包含总和,初始化a2
致:
move$a2$zero