2012-11-20 173 views
1

如何在MIPS中查找輸入是偶數還是奇數?我試圖找出使用整數寄存器,但我的程序無法正常工作。這裏是代碼:如何在使用整數寄存器的MIPS彙編中查找偶數奇數

li $s1,2 

div $s0,$s1 

mfhi $t0 

xor $t1,$t0,$0 

beq $t1,0,Even 

j Odd 

但是,這個程序甚至顯示奇數,因爲即使這是因爲結果是像0.3這樣的小數。我該如何解決這個問題?

+2

提示:測試一個數字是否奇數,或者甚至只需要查看最低有效位(位0)。 –

+0

我已經通過xor和too嘗試過了,但代碼不起作用 – Alfred

+0

如果我在C中告訴正確的代碼是'if(a&1)goto Odd;',你會顯示彙編程序的版本嗎? (或者如果((a&1)== 0)轉到偶數;') –

回答

2

您需要and您想要查詢的號碼0x01

這是你如何使用MIPS andand $d, $s, $t

如果目標寄存器中的值是1,那麼它是奇數別的偶數。

+0

我們沒有學習地址的東西,所以有沒有其他的解決方案。 – Alfred

+0

我也試過這和(ing)剩餘寄存器1但仍然得到錯誤的結果 – Alfred

+0

謝謝大家幫助我。其實這可能是彙編問題。 Qt spim很糟糕。我不是那樣的,但是當重新啓動Qt spim時,masking和xor方法都是可用的 – Alfred