mips从寄存器中提取某些位,并将它们设置到同一位置的不同寄存器,而不更改其余的位

mips从寄存器中提取某些位,并将它们设置到同一位置的不同寄存器,而不更改其余的位,mips,Mips,我试图从寄存器$t0中提取位15到31,并将它们设置到寄存器$t1中的相同位置 如何在尽可能少的指令中执行此操作?在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存器中获取某些位的值 如果您想将其与另一个输入的位组合,请对第二个输入使用相同的技术,并对您和它们使用的值使用相反的1和0。然后,将两个结果值相加 例如(伪Y,用值代替寄存器): 在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存

我试图从寄存器$t0中提取位15到31,并将它们设置到寄存器$t1中的相同位置


如何在尽可能少的指令中执行此操作?

在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存器中获取某些位的值

如果您想将其与另一个输入的位组合,请对第二个输入使用相同的技术,并对您和它们使用的值使用相反的1和0。然后,将两个结果值相加

例如(伪Y,用值代替寄存器):


在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存器中获取某些位的值

如果您想将其与另一个输入的位组合,请对第二个输入使用相同的技术,并对您和它们使用的值使用相反的1和0。然后,将两个结果值相加

例如(伪Y,用值代替寄存器):


在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存器中获取某些位的值

如果您想将其与另一个输入的位组合,请对第二个输入使用相同的技术,并对您和它们使用的值使用相反的1和0。然后,将两个结果值相加

例如(伪Y,用值代替寄存器):


在基本级别上,您可以通过将寄存器与0(您希望忽略旧值)和1(您希望尊重旧值)进行ANDing,从而从寄存器中获取某些位的值

如果您想将其与另一个输入的位组合,请对第二个输入使用相同的技术,并对您和它们使用的值使用相反的1和0。然后,将两个结果值相加

例如(伪Y,用值代替寄存器):

AND 0001010101 0000001111 = 0000000101
AND 1101101101 1111110000 = 1101100000
ADD 1101100000 0000000101 = 1101100101