如何使用MIPS汇编更新寄存器中的特定位字段?
例如,如果我需要使用新值更新寄存器$ t1中的第10位到第15位。所有其他位应保持不变。
答案 0 :(得分:3)
假设$t0
包含要移动到$t1
的第10-15位的6位字段。
您可以考虑这种方法:
li $t2 0x3F #bits 0-5 on
sll $t2 $t2 10 #bits 10-15 on
not $t2 $t2 #bits 10-15 off
and $t1 $t1 $t2 #turn off bits 10-15
or $t1 $t1 $t0 #set bits 10-15