2009-11-30 77 views
0

如果我提示用戶輸入一個整數,那麼使用MIPS程序集,我該如何獲取該整數並將其分解爲必需的部分?MIPS彙編中的整數問題

例子:

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

然後我在$ V0值存儲在臨時寄存器中,比如$ T0,並且需要把它分解成,使得它的每個部分。所以,308必須分解爲:3,0和8.我需要這樣做,以便我可以將這些部分中的每一個部分放在一起並將它們相加。

來自用戶的輸入值必須作爲整數輸入。

感謝, NMR

回答

1

這是@ Don的答案,帶有扭曲

$ t0包含用戶輸入。 (asume無符號)

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

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

使用beq,bgt進行比較。

一些幫助

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

2

除以10,可以使用剩餘拿到8,如果商爲非零,除以10再次使用,然後剩餘部分零,如果商非零重複。

+0

這非常有意義。我完全在想那個。謝謝您的幫助。 – ihtkwot