在MIPS中,我们可以加载 字(32位),半字(16位)和字节< / strong>(8位)。
我很想知道我们是否可以加载x个位?
例如,
如果我们有一个32位字,我想只提取(加载)第一个 x 位
word = 0001 1001 1000 0000 0000 0000 0000 1110
从word加载前12位并存储到temp
temp = 0000 0000 0000 0000 0000 0001 1001 1000
答案 0 :(得分:1)
我所知道的架构没有支持这个 1 ,因为它只是没用,会影响CPU的性能。您始终可以通过使用AND
如果变量的地址包含在$s0
中,您可以使用此
lw $t0, 0($s0) # load the value
srlv $t0, $t0, 20 # shift right 20 bits
如果要加载低12位,则屏蔽掉高位
andi $t0, $t0, 0xfff
从任意位置加载一系列位,组合移位和按位 - 如上所述
1 更新:x86可以加载[{3}}
中BZHI
的某个内存地址存储的值的低N位