解決方案手冊中的答案對於此位域提取問題似乎是錯誤的。我的問題在下面發佈。MIPS指令從寄存器中提取字段
提出的問題是:
查找提取從$ T0一個 場的常數值我的MIPS指令最短序列= 22和j = 5,並將該字段以數據表中顯示的格式放入$ t1 。
的解決方案手冊給出了這樣的答案:
lui $t1, 0x003f ori $t1, $t0, 0xffe0 and $t1, $t0, $t1 srl $t1, $t1, 5
我有2個問題:
- 零向右。這個建議的答案如何確保寄存器$ t1中「字段」右側的所有位全部爲零?
- 右移邏輯。是不是最後的指令應該是
sll $t1, $t1, 10
而不是?
2.是的,我認爲它需要以左移結束將字段放在寄存器的頂部。一個簡單的方法來做到這一點將是正確的移動到底部,然後左移到頂部。除非移位指令在MIPS上非常慢,否則兩個班次應該比4個指令更好。 –
謝謝,這正是我查看解決方案之前的答案。感謝您的編輯。 –