MIPS帮助:添加数组并打印它们的总和

时间:2013-10-07 13:26:54

标签: arrays sum mips

添加两个数组: 编写一个MIPS汇编语言程序,添加两个数组(逐个元素添加)和 打印他们的总和。

在一行中打印出和的元素,标记并用空格分隔。 该行应以\ n“字符结束。例如,如果数组a和b如上所述, 输出看起来像: 总和是:1 4 7 6 10 14 11 16 21 16

这是我到目前为止的代码

# data segment

.data




size:    .word  10 #Size of first array
$a0:    .word  2, 4, 6, 8, 10, 12, 14, 16, 18, 20 #First array's elements
size2:   .word 10 #Size of second array
$a1:   .word -1, 0, 1, -2, 0, 2, -3, 0, 3, -4 #Second array's elements
size3:   .word 10 #size of third array

main:

la   $t0, $a0   #$t0 points to $a0[0]          
lw   $t1, size   #$t1 equals number of elements in $a0[]  
la   $t2, $a1  #$t2 points to $a1[0] 
lw   $t3, size2  #$t3 equals number of elements in $a1[]


la $t4, $a0 #load base address of array into register $t4
la $t5,  #load base address of array into register $t5


Assigning the array's elements to temp variables:

lw $t6,0($a0)

addiu $a0,$a0,4

lw $t7,0($a0)

addiu $a0,$a0,4

lw $t8,0($a0)

addiu $a0,$a0,4

lw $t9,0($a0)

addiu $a0,$a0,4

lw $t10,0($a0)

addiu $a0,$a0,4






# exit program:

li   $v0, 10      # terminate program
syscall

所以这里是我难倒的地方。如何将第一个和第二个数组的每个元素都放入MIPS值,如$t0$t1等。

然后如何将它们组合在一起并打印出数组的总和?

我很抱歉占用你的时间,但我已经搜索了几个小时的指南,了解如何在MIPS中添加数组,然后打印总和,但无济于事

1 个答案:

答案 0 :(得分:1)

您可以使用a MIPS instruction set reference来检查哪个指令适合程序的每个步骤。

例如,要从$t0中给出的地址将{32}字加载到$a0,您可以使用lw $t0,0($a0)

要将$a0增加到指向下一个单词,您将使用addiu $a0,$a0,4

如果两个值(例如,计数器和数组长度)不相等,则分支到标签,您将使用类似bne $t2,$a1,some_label的内容。

等等..

顺便说一句,我不确定$b0$b1应该是什么。你的意思是$t0$t1