Я должен написать код инструкции на языке ассемблера, чтобы найти сумму двух последних чисел в массиве, которые равны 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