Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Assembly 在MIPS中加载x个位数_Assembly_Mips - Fatal编程技术网

Assembly 在MIPS中加载x个位数

Assembly 在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

在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 value
srlv $t0, $t0, 20 # shift right 20 bits
如果要加载低12位,请屏蔽掉高12位

andi $t0, $t0, 0xfff
要从任意位置加载一系列位,请将shift和bitwise等组合起来


1更新:x86可以使用
BZHI
加载存储在某个内存地址的值的低N位