Итак, я пытаюсь сделать эту последовательность, которая похожа на Фибоначчи, я сделал следующий код, но когда я выполняю, он просто отображает запятую и ноль, я довольно плохо знаком с MIPS, поэтому я не смогвыявить проблему.спасибо
.data
prompt1: .asciiz "Enter an integer value\n"
prompt2: .asciiz "The Padovan sequence numbers are:\n"
prompt3: .asciiz "You have entered a value between 0 and 2, the sequence value is 1"
prompt4: .asciiz "You have entered a negative value, the program will exit "
comma: .asciiz "," #Comma to insert between numbers
.text
main:
#Ask the user for an input
la $a0, prompt1
li $v0, 4
#Get the number from the user and move it into another register
#and branch if the input is less than zero
li $v0, 5
syscall
move $a0, $v0
bltz $a0, main_exit
#Jump and link to the tag and save the result
move $t2, $v0
jal padovan
#Print the message prompt2
la $a0, prompt2
li $v0, 4
syscall
#Print the result
li $v0, 1
move $a0, $t2
syscall
#Print the Comma
la $a0, comma
li $v0, 4
syscall
j main
less_than2input:
la $a0, prompt3
li $v0, 4
syscall
#Exit the program
li $v0, 10
syscall
main_exit:
la $a0, prompt4
li $v0, 4
syscall
#Exit the program
li $v0, 10
syscall
padovan:
bgt $a0, 2, pado_full #If the input is greater than 2 jump to the full function
move $v0, $a0
jr $ra
pado_full:
sub $sp, $sp, 16
sw $ra, 4($sp)
sw $a0, 8($sp)
addi $a0, $a0, -2
jal padovan
sw $v0, 0($sp)
addi $a0, $a0, -1
jal padovan
lw $t0, 0($sp)
add $v0, $t0, $v0
lw $ra, 4($sp)
lw $a0, 8($sp)
addi $sp, $sp, 16
jr $ra