PDA

Visualizza la versione completa : [ASSEMBLY] Richiesta di conferma per ricerca (MIPS)


shadyz
25-04-2007, 00:52
n codice assambly (per mips) vorrei chiedere all'utente se vuole effettuare una ricerca inserendo il carattere s o n. Ho azzardato questo codice ma non so come proseguire. Consigli?

Nella parte .data ho messo



msg: .asciiz "Vuoi effetturare una ricerca? (s/n)"


mentre nella parte .text



Cerca: la $a0, msg
li $v0, 4
syscall

li $a0, 8
syscall

deleted_13
25-04-2007, 20:16
intanto

li $v0, 8
syscall

il che salva nel registro $a0 la stringa e nel registro $a1 la sua lunghezza.

poi.. dovresti usare dei branch per fare in modo che il tuo programma esegua l'istruzione di ricerca oppure no in base al carattere inserito da tastiera..

il problema che mi pongo che non conosco nessuna istruzione MIPS che fa confronti tra stringhe.. :dh:
provo a dare un'occhio! :fagiano:

deleted_13
25-04-2007, 20:21
trovato! :D

basta un branch not equal (bne) tra due registri in cui hai salvato rispettivamente la "n" o la "s" e il carattere dato da tastiera! :ciauz

ah.. poi non mi ricordo granch.. ma mi pare si dovesse usare anche l'istruzione "lb", ma visto che da tastiera immetti un solo carattere, in teoria, forse non serve.. prova! :fighet:

shadyz
28-04-2007, 18:57
ecco.. ma la mia domanda : il branch equal (o not equal) mi pu confrontare i valori di due registri nel caso in cui questi contengano lettere?

nel .data ho messo

letter_s: .asciiz "s"

poi nel .text


Search: la $a0, msg
li $v0, 4
syscall

li $v0, 8
syscall

move $s0, $v0

bne $v0, $s0, Exit
j main

Loading