Estou desenvolvendo alguns exercícios em assembly mips, e um deles é basicamente:
23. Faça um algoritmo que leia dois valores correspondentes a anos e mostre quais os anos não bissextos existem entre eles. (A diferença entre os anos não pode ser maior que 1000)
.data
msg1: .asciiz "\nEntre com a primeira data: "
msg2: .asciiz "\nEntre com a segunda data: "
msg3: .asciiz "\nPrimeira data deve ser menor e o intervalo entre ela não pode exceder 1000."
msg4: .asciiz "\nEsses são os anos não bissestos: "
.text
main:
#Chamando msg1
li $v0, 4
la $a0, msg1
syscall
#Armazenando primeira entrada do usuario
Ler:
li $v0, 5
syscall
add $t0, $v0, $zero
#Chamando msg2
li $v0, 4
la $a0, msg2
syscall
#Armazenando segunda entrada do usuario
li $v0, 5
syscall
add $t1, $v0, $zero
add $t2, $t0 , 1000
bgt $t1, $t2, erro
ble $t1, $t0, erro
j enquanto
#Chamando msg3
erro:
li $v0, 4
la $a0, msg3
syscall
j Ler
enquanto:
add $t2, $t0, 1
sub $t3, $t1, 0
bgt $t3, $t2, se
enquanto2:
bgt $t3, $t2, se
j Resultado
#Calculando o resto de n1
se:
rem $t4, $t2, 4
beq $t4, 0, naocontador
#Anos não Bissextos
add $t5, $t5, 1
#Contador do n1
naocontador:
add $t2, $t2, 1
j enquanto2
Resultado:
li $v0, 4
la $a0, msg4
syscall
li $v0, 1
add $a0, $t5, 0
syscall
#Zerando $t5
sub $t5, $t5, $t5
Qual erro tem no meu código? Obrigado