Сумма MIPS двух последних массивов, позволяя пользователю вводить ввод - PullRequest
0 голосов
/ 06 августа 2020

Я должен написать код инструкции на языке ассемблера, чтобы найти сумму двух последних чисел в массиве, которые равны n и n-1, разрешив пользователю вводить данные следующим образом:

введите описание изображения здесь

когда я запустил свой код, я получил это вместо введите описание изображения здесь

Я новичок в MIPS и у меня нет идея, как продолжить мой код. У меня буквально нет basi c (я знаю, что это не имеет смысла, но да, вы можете представить себе это, когда ничего не знаете о коде сборки)

что не так с кодом?

.data

prompt: .asciiz "\nPlease enter the value of n: "
text:   .asciiz "\nThe sum of the last two numbers is "

n: .word 0

total: .word 0
 

########################
# Text segment
########################
.text
main: 


    # Printing out the text
    li $v0, 4
    la $a0, prompt
    syscall

    # Getting user input
    li $v0, 5
    syscall

    sw $v0, n       #store user input in variable n
    lw $s0, n       # load word into $s0 from memory[n]
    move $s1,$s0    #store value of n to $s1

    li $v0, 4       # print the text for sum
    la $a0,text
    syscall 

    li $v0,1        # print total
    lw $a0, total
    syscall


 


sum_loop:

    sub $s0, $s0, $t0   # ($s0)=($s0)-1
    add $s1, $s0, $s1   # ($s1)=($s0)+($s1)
    beqz $s0, done      # The execution branch to 'done' if ($s0)=0
    j loop              # The execution jump back to 'loops' 

done: 
    add $v0, $s0,$v0    #store result in $v0
    sw $s1, total       # Store ($s1) into memory[total]
    li $v0, 10          # syscall number 10 will exit from program
    syscall             # actually exit the program  

...