2014-06-23 73 views
0

我正在做我的家庭作業,其中一個問題是將0x8008FFC0解碼爲MIPS彙編語言指令並編寫指令類型。 0x8008FFC0轉換爲1000 0000 0000 1000 1111 1111 1100 0000, 和100000指令爲lb.我正在查看'MIPS參考數據。 「綠色表」,我沒有看到它在「核心指令集」中列出。那麼它甚至有指令類型?如果這是爲什麼?MIPS 0x8008FFC0沒有指令類型?

謝謝

+0

它是'lb $ 8,-64($ 0)',你可以看到[這裏](http://onlinedisassembler.com/odaweb/),它本質上是一個I型指令 –

回答

1

有在MIPS處理器3的指令類型,R,I,和J

在MIPS處理器,R型指令有操作碼000000,所以這一不可成爲R型指令。

J型指令移動pc周圍,並格式[操作碼] [目標]。 lb不會移動我們,並且沒有這種格式,所以它不可能是J.

剩下的唯一選項是I,lb的格式爲[操作碼] [源] [目標] [立即],你可以看到here,所以它是一個I型指令。

希望有所幫助。

假設你的意思是this綠板。你看第一頁上的「核心指令集」表格,它列出了一堆加載x指令,它們都是I型的,所以推測lb也是I型是合理的。 (特別是,無符號的加載字節應該與加載字節的指令類型相同)

或者如果您知道如何使用該指令,我認爲它是lb $ t offset($ s),您可以看到它引用兩個寄存器($ s和$ t)和一個立即值(offset)。從中你可以看到它是我輸入的。

至於你對操作碼和功能代碼的問題。操作碼是指令的前六位,這是計算機首先決定要做什麼的第一件事。由於它是六位,所以有64個可能的值。這足以唯一地識別每個I和J類型指令,但爲了增加可用指令的數量,R類型指令的識別方式稍有不同。每個R型指令都有一個操作碼000000,計算機通過最後5位將它們分開,稱爲功能代碼。

+0

謝謝你的回答。更遠的是,我的問題是如何用「綠板」來做到這一點。我將無法拿任何其他東西。你能解釋MIPSopcode(31:26)(1)MIPSfunct(5:0)(2)MIPSfunct(5:0)? – user3754212