У меня есть задание написать минимальную int-функцию в QTSpim.Кажется, что когда я попытался ввести 2 пользовательских ввода, а именно 0 и 4, он полностью обходит мой ввод, и, поскольку мои функции сильно зависят от моих пользовательских вводов, я не могу проверить, работает ли мой код.Может кто-нибудь помочь мне с этим вопросом?Мой код и правильный ожидаемый вывод показаны ниже.
# arrayFunction.asm
.data
array: .word 8, 2, 1, 6, 9, 7, 3, 5, 0, 4
newl: .asciiz "\n"
.text
main:
addi $a1, $zero, 10
li $v0, 4 # Print the original content of array
la $a0, array
la $a3, array #to store so that we can modify a0 later
jal printArray # prints integer array
# setup the parameter(s)
# call the printArray function
# Ask the user for two indices
#li $v0, 5 # System call code for read_int
#syscall
#addi $t0, $v0, 0 # first user input in $t0
#li $v0, 5 # System call code for read_int
#syscall
#addi $t1, $v0, 0 # second user input in $t1
addi $t0, $zero, 0 # simulate first input
addi $t1, $zero, 4. # simulate 2nd input
# Call the findMin function
# setup the parameter(s)
sll $t0, $t0, 2 #multiply by 4 to increment first pointer
sll $t1, $t1, 2 #multiply by 4 to increment 2nd pointer
add $a1, $t1, $a0 #make final address for larger pointer
add $a0, $t0, $a0 #make final address for smaller pointer
addi $t4, $zero, 99 #set the first lowest element to 99, magic number
#modify arguments before sending in but actually its mutation
jal findMin # call the function
# Print the min item
# place the min item in $t3 for printing
# Print an integer followed by a newline
li $v0, 1 # system call code for print_int
addi $a0, $t3, 0 # print $t3
syscall # make system call
li $v0, 4 # system call code for print_string
la $a0, newl #
syscall # print newline
#Calculate and print the index of min item
# Place the min index in $t3 for printing
sub $t3, $v0, $a3
srl $t3, $t3, 2
Вот вывод, который я должен увидеть на консоли:
8216973504 #original array
0 #first user input
4 #2nd user input
1 #Min element
2 #index of element