Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892

    Assembly MIPS: dubbietto su salti

    Ciao a tutti, perchè un codice cosi non funge?

    addi $t0,$zero,2
    div $s0,$t0
    mfhi $t1
    beqz $t1,pari
    bnez $t1,dispari

    devo valutare se un è pari o dispari....questo l'ho fatto ma non capisco perchè mi salti sempre e comunque alla procedura pari...???



    chi mi aiuta?
    Debian Sarge 3.01a
    Slackware 10.2

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    127
    cosa carichi in $s0?

  3. #3
    Utente di HTML.it L'avatar di Fabiuz
    Registrato dal
    Nov 2004
    Messaggi
    892
    scusa...non ho messo la parte di codice prima..

    In $s0 cè il mio intero e in $t0 cè il numero 2 per effettuare il modulo...!

    Ma non è quello che non funge!

    Quello che non funge è che chiama sempre pari e se modifico l'ordine della beqz e della bnez mi chiama sempre dispari!

    Quindi deve essere un problema di chiamate a funzioni!
    Debian Sarge 3.01a
    Slackware 10.2

  4. #4
    Forse è perchè stai utilizzando un registro temporaneo che non ti usi:

    "$t1"

    Ciauzzzzz......
    DD

  5. #5
    Originariamente inviato da derekderek
    Forse è perchè stai utilizzando un registro temporaneo che non ti usi:

    "$t1"

    Ciauzzzzz......
    Scusate per la mia ignoranza, ma volevo dire questo:

    Forse è perchè stai utilizzando un registro temporaneo che non usi:

    "$t1"


    DD

  6. #6
    Utente di HTML.it
    Registrato dal
    May 2001
    Messaggi
    127
    codice:
    .data
    
    prompt1: .asciiz "Pari"
    prompt2: .asciiz "Dispari"
    
    .text
    .globl main
    
    
    
    main:
    add $s0, $zero, 20
    add $t0, $zero, 2
    div $s0, $t0
    
    
    mfhi $a0
    
    beqz $a0, pari
    bnez $a0, dispari
    
    pari:
    li $v0, 4
    la $a0, prompt1
    syscall
    j exit
    
    dispari:
    li $v0, 4
    la $a0, prompt2
    syscall
    j exit
    
    exit:
    li $v0, 10
    syscall

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.