我的任务是创建一个程序,在该程序中输入两个数组,并将所有元素的总和存储在用户必须输入的地址中。
例如。
65888192 3 1 2 3 4 5 6
第一个数字是第三个数组的地址
第二个数字是数组大小
1 2 3是第一个数组的三个元素
4 5 6是第二个数组的三个元素
当我在.data中分配数组时,它可以完美地工作, 但要创建一种表单用户输入,我不知道如何。
.data
v1Array: .space 80
v2Array: .space 80
blank: .asciiz " "
.text
j main
calc: # calculate the sum of each array element i skaleren proizvod
add $t1,$zero,$zero #indeks i
add $t2,$zero,$zero #indeks za element od nizata
add $t5,$zero,$zero #pocetna za suma
add $t9,$zero,$t8 #zamena da ne se izgubi vrednosta
whilecalc:
beq $t1,$t0,exit
lw $s3,v1Array($t2)
lw $s2,v2Array($t2)
add $t3,$s3,$s2
mult $s2,$s3
mflo $s4
add $t5,$s4,$t5
lw $t3,6($t9)
addi $t1,$t1,1
addi $t2,$t2,4
addi $t9,$t9,4
j whilecalc
exit:
jr $ra
main:
li $v0,5
syscall
add $t8,$zero,$v0 #memoriska lokacija
li $v0,5
syscall
add $t0,$zero,$v0 #broj na elementi vo nizata - n
add $t1,$zero,$zero #indeks i
add $t2,$zero,$zero #indeks za element od nizata
whilev1:
beq $t1,$t0,inv2 # if i = t0/n jump to insert v2
li $v0,5
syscall
add $t4,$zero,$v0
sw $t4,v1Array($t2)
addi $t1,$t1,1
addi $t2,$t2,4
j whilev1
inv2:
add $t1,$zero,$zero #indeks i
add $t2,$zero,$zero #indeks za element od nizata
whilev2:
beq $t1,$t0,continue # if i = t0/n jump to calculate
li $v0,5
syscall
add $t4,$zero,$v0
sw $t4,v2Array($t2)
addi $t1,$t1,1
addi $t2,$t2,4
j whilev2
continue:
jal calc
print:
add $t1,$zero,$zero #indeks i
add $t9,$zero,$t8 #zamena da ne se izgubi vrednosta
li $v0,1
add $a0,$zero,$t5
syscall
li $v0,4
la $t5,blank
add $a0,$zero,$t5
syscall
whileP: #pecati nizata
beq $t1,$t0,end
lw $s3,($t9)
li $v0,1
add $a0,$zero,$s3
syscall
li $v0,4
la $t5,blank
add $a0,$zero,$t5
syscall
addi $t1,$t1,1
addi $t9,$t9,4
j whileP
end: #return 0 vo main
li $v0,10
syscall