2010-02-06 77 views
3

在我的mips彙編代碼中,由於結果不能放入一個寄存器,所以我使用多條指令來乘以2個大數字。這意味着該號碼保存在hi和lo特殊寄存器中。我的問題是如何打印乘法的結果。我可以訪問hi和lo並將它們放入其他寄存器(即$ t0,$ t1),但我不知道如何組合這兩個數字以打印結果。謝謝。如何在mips程序集中打印大於32位的數字?

回答

3

(這個回答刻意保持高水平,因爲我在MIPS彙編敢肯定沒有一個打印數字,除非他們做了家庭作業。)

如果你不介意它在十六進制中,這沒有問題;只需在十六進制中打印一個字,然後在下一個字中打印。不要忘記在第二個單詞中包含前導零! (其實我認爲spim,我猜你正在使用,只能打印10,所以即使這可能會有點麻煩)。

如果你想要它在基地10,這個問題很快進入我稱之爲'痛苦在屁股'的類別。在'現實生活'中,我不會打擾;在C中進行打印,某處的某個編譯器人員會爲您解決所有這些問題。對於作業,請自己寫一個功能,將輸入重複分割10次,最終最終輸出數字。如果mips沒有64位分隔指令(不能告訴你我的頭頂),這對你來說將是一個非常有趣的問題。