指令集與組合語言
在RISC-V(RV32I)中執行「addi t0, zero, -1」之後,t0中存放的32位元值是下列何者?
- A0xFFFFFFFF
- B0x00000FFF
- C0x80000001
查看答案與解析
正確答案:A. 0xFFFFFFFF
立即值-1以12位元表示為0xFFF。addi會將它符號擴充為32位元,也就是把最高位元的1複製到所有高位,因此成為0xFFFFFFFF,以二補數表示-1。多虧有符號擴充,只要加上負的立即值就能做減法。若高位以零填補,則成為0x00000FFF=4095,意義就變了。
- A. 正確。-1經符號擴充後所有位元皆為1。
- B. 這是不做符號擴充、以零填補時的值。
- C. 這是以符號加絕對值表示的-1,不是二補數。