[HELP on MIPS] lettura e comparazione stringhe
Posted by lallyblue on 11-05-2006 10:47
Ciao a tutti!
sto facendo un programmino in assembler x il MIPS e voglio chiedere all'utente se vuole ricominciare o terminare.
Mi aspetto un carattere:
se scrive 'y' ricomincio
se scrive 'n' mi fermo
se scrive altro glielo richiedo.

Riesco a leggere l'input ma poi non riesco a fare il confronto con i caratteri 'y' e 'n' per fare i relativi salti.

Qcuno mi aiuta?

Questo e' il codice che ho scritto relativamente a questo problema:

nella sezione .data:
code:
repeat: .asciiz "\nWant to do it again?\n" answer: .asciiz "" yes: .ascii "y" no: .ascii "n"

nella sezione .text:
code:
# chiede se ricominciare (main) o finire (exit) final: # stampa stringa di richiesta ripetizione programma la $a0, repeat li $v0, 4 syscall j again again: # legge risposta da input la $a0, answer # sara' solo y o n, non null terminated li $a1, 2 # quindi 1 solo byte e' sufficiente li $v0, 8 syscall # controlla la risposta la $t2, yes la $t3, no beq $a0, $t2, main # se la risposta e' y, allora ripeti da (main) beq $a0, $t3, exit # se la risposta e' n, allora esci dal programma (exit) j again # se la risposta e' altro, richiedi (again) # esce dal programma exit: li $v0, 10 syscall

e nel main:
code:
main: # Start of code section # svuoto i registri temporanei li $t0, 0 li $t2, 0 li $t3, 0


ah, nei commenti potrebbe esserci qualche imprecisione sul 'non terminated' o meno, perche' sto facendo un po' di prove...
Powered by: vbHome (lite) v3.8 and vBulletin v2.3.1
Copyright © 2000 - 2002 Jelsoft Enterprises Limited