Ir para o conteúdo
  • 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

Mensagens Recomendadas

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?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.