Assembly 在MIPS中加载x个位数
在MIPS中,我们可以加载字(32位)、半字(16位)和字节(8位) 我很想知道我们是否可以加载x个比特数 比如说, 如果我们有一个32位字,我只想提取(加载)前x位 word=0001 1001 10000000 1110 从word加载前12位并存储到tempAssembly 在MIPS中加载x个位数,assembly,mips,Assembly,Mips,在MIPS中,我们可以加载字(32位)、半字(16位)和字节(8位) 我很想知道我们是否可以加载x个比特数 比如说, 如果我们有一个32位字,我只想提取(加载)前x位 word=0001 1001 10000000 1110 从word加载前12位并存储到temp temp=00000001 1001 1000我所知的任何体系结构都不支持此1,因为它毫无用处,会影响CPU的性能。通过使用和 如果变量的地址包含在$s0中,则可以使用 lw $t0, 0($s0) # load the val
temp=00000001 1001 1000我所知的任何体系结构都不支持此1,因为它毫无用处,会影响CPU的性能。通过使用
和
如果变量的地址包含在$s0
中,则可以使用
lw $t0, 0($s0) # load the value
srlv $t0, $t0, 20 # shift right 20 bits
如果要加载低12位,请屏蔽掉高12位
andi $t0, $t0, 0xfff
要从任意位置加载一系列位,请将shift和bitwise等组合起来
1更新:x86可以使用
BZHI
加载存储在某个内存地址的值的低N位