Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

BigMachine3

Mesma solução independentemente do número introduzido

Recommended Posts

BigMachine3

Eu estou a desenvolver um programa que verifica se o número introduzido pelo utilizador é igual ou diferente ao número guardado em memória.

Independentemente do número introduzido pelo utilizador a solução é sempre a mesma, diz que está mal mesmo introduzindo o número correto.

Programa:              

        .data
pergunta:             .asciiz "Introduza um numero\n"
n_utilizador:         .space 5
numero_secreto:       .asciiz "1234"
falhou:               .asciiz "Falhou, o numero era 1234"
acertou:              .ascii "\nAcertou em "
tentativas:           .asciiz "tentativas"
                      .text

main:
              #Faz o display da pergunta
              li $v0, 4
              la $a0, pergunta
              syscall

              #Guarda o numero introduzido
              li $v0, 8
              la $a0, n_utilizador
              addi $a1, $a1, 5
              syscall

              la $a0, n_utilizador                              
              la $a1, numero_secreto                           

              jal Passagem_enderecos                            

              beqz $v0, Iguais                              
              bnez $v0, Falhanco                                

Iguais:
              #Faz o display da mensaguem acertou
              li $v0, 4
              la $a0, acertou
              syscall

              #Termina o programa
              li $v0, 10
              syscall

Falhanco:
              #Faz o display da mensagem falhou
              li $v0, 4
              la $a0, falhou
              syscall

              #Termina o programa
              li $v0, 10
              syscall


Passagem_enderecos:
              move $t0, $a0                                    
              move $t1, $a1                             

Verifica_b_por_b:
              lb $t2($t0)                          
              lb $t3($t1)                                    
              beqz $t2, Verifica_numero_secreto           
              beqz $t3, Diferente                              
              slt $t4, $t2, $t3                                 
              bnez $t4, Diferente                            
              addi $t0, $t0, 1                                  
              addi $t1, $t1, 1                                 

              j Verifica_b_por_b                              

Diferente:
              addi $v0, $zero, 1

              j Fim_do_procedimento

Verifica_numero_secreto:
              bnez $t4, Diferente
              addi $v0, $zero, 0

Fim_do_procedimento:
              jr $ra

 

Podem-me dizer o que está errado?

Share this post


Link to post
Share on other sites
BigMachine3

Já encontrei os problemas.

Alterei "n_utilizador:         .space 5" para "n_utilizador:         .space 6",  "beqz $t2, Verifica_numero_secreto" para "beq $t2, '\n', Verifica_numero_secreto" e "slt $t4, $t2, $t3   "  para "sne $t4, $t2, $t3"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.