2014-10-10 103 views
1

我正在參加有關計算機組織和體系結構的課程。 我們已經做了一些練習。其中之一是將彙編代碼轉換爲機器指令。將組件轉換爲機器代碼

我被困在將movia轉換成機器指令。

我知道它由2個操作組成,orhiaddi

這是彙編代碼:

movia r8, 50000 

行使指出r00x0r80x8

因此,orhi是:orhi r8, r0, %hiadj(50000)和附加是:addi r8, r8,%lo(50000)

我已經得到了orhi到:

00000 01000 1100001101010000 110100  
___________________r0____r8_______50000________0x34(opcode) 

但我要對50000使用%hiadj!我不知道該怎麼辦?我已經搜索了一下,但還沒有找到足夠清晰的答案。

我很新,但真的很想明白!那麼,您如何使用%hiadj?對不起,如果問題不明確,但如果您想提供幫助,我會盡力解釋。

回答

1

%hiadj是其操作數的16個最高有效位,如果16個最低有效位將被符號擴展movia,則進行調整。在50000的情況下,16個最高有效位是0,並且沒有符號擴展。

所以%hiadj(50000)只是0