我需要构建一个MIPS程序,它从用户那里得到20个整数(每个数字必须比以前更大,例如输入3,5,4或3,4,4不正确)然后放入它们在两个数组中(每个数组得到10个元素)。只有当值在两个数组中时,程序才应该在基数10和基数4中以递减的方式打印值(例如,如果我们在两个数组中都有数字-5,-6,2,它应该打印2,-5, -6和2,-11,-12)。
我试过并编写了这段代码:
.data
array1: .space 40 # first array store 10 integer elements
arrend1:
array2: .space 40 # second array store 10 integer elements
openMsg: .asciiz "Please enter 20 numbers: "
.text
main:
# print openning message
li $v0,4
la $a0, openMsg
syscall
la $t3, array1 # load base addr. of array1
la $t4, array2 # load base addr. of array2
la $t5, arrend1 # load address of array1 end
get_array:
# get the user's integar
li $v0, 5
syscall
move $t0, $v0 # store the result in $t2
sw $t0, array1 # store word in register $t0 into RAM at address contained in $a1
addi $t3,$t3,4 # increment array pointer
blt $t3,$t5,get_array # branch to get_array if i < 10
此代码只能从用户获取输入并将其放入第一个数组中。我该如何继续这个?