Системный вызов readint MIPS не принимает входные данные - PullRequest
0 голосов
/ 02 октября 2018

У меня есть задание написать минимальную 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
...