Domanda

Utilizzando l'assemblaggio MIPS se chiedo a un utente di inserire un numero intero come posso quindi prendere quel numero intero e suddividerlo nelle sue parti richieste?

Esempio:

                 # User inputs a number
li  $v0, 5      # read value of n
    syscall

Quindi memorizzo il valore in $ v0 in un registro temporaneo, ad esempio $ t0, e devo dividerlo in ogni parte che lo compone. Quindi, 308 deve essere suddiviso in: 3, 0 e 8. Devo farlo in modo da poter quindi quadrare ciascuna di queste parti e aggiungerle insieme.

Il valore di input dell'utente deve essere inserito come numero intero.

Grazie, NMR

È stato utile?

Soluzione

Questa è la risposta di @ Don, con una svolta

$ t0 contiene l'input dell'utente. (assume unsigned)

li   $t1,10
DIVU $t0,$t1 //divide by 10

mfhi $t2 //t2 contains the division result
mflo $t3 //t3 containts the division remainder

usa beq, bgt per fare i confronti.

Qualche aiuto

http://www.mrc.uidaho.edu /mrc/people/jff/digital/MIPSir.html

Altri suggerimenti

Dividi per 10, usa il resto per ottenere l'8, se il quoziente è diverso da zero, dividi di nuovo per 10 e usa quindi il resto per lo zero, se il quoziente è ripetizione diversa da zero.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top