這是在考試中,我承認我不知道發生了什么,考試前沒有討論輪班。它們都以十六進制開頭,然后指令將一個邏輯向左移動,另一個向算術向右移動。出于某種原因,左邏輯的每個數字加 5,然后在開頭有一個 8,使十六進制從 7 變為 B(12),在第二個中,前面有一個 E,但數字保持不變? 我的筆記有教授說添加兩個 0 或兩個 1,但我仍然沒有看到他從哪里得到答案。$t1 和 $t0 值在頂部給出,然后每個問題的下面是不同的 MIPS32 陳述句;sll $t2, $t1, 3 和 sra $t2, $t0, 2. $t1 是十六進制 (0x7777 77777) 而 $t0 是 (0x8888 88888)。

uj5u.com熱心網友回復:
首先,B是 11,所以不是 7 5。另外,你似乎在做加法,而不是移動。
首先將數字轉換為二進制。左移從右邊引入零,因此附加 3 個零并從前面切掉 3 個前導位。將數字轉換回十六進制。您將看到除最后一個數字之外的所有數字B(因為它們引入了以下內容7)。最后一位數字顯然有您附加的 3 個零,因此最終是8.
算術右移復制最高有效位。在您的情況下,這是 a 1,因此在前面添加兩位1并從右側切掉兩位。雖然這確實在前面給出1110= E,但其余的數字將是0010= 2not 8。正確的結果是E2222222。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/365378.html
上一篇:故意在RISC-V中引發非法指令
