#assembly #bit-manipulation #mips
#сборка #обработка битов #mips
Вопрос:
Как можно обновить конкретное битовое поле в регистре с помощью сборки MIPS?
Например, если мне нужно обновить биты с 10 по 15 в регистре $ t1 новым значением. Все остальные биты должны оставаться такими, какие они есть.
Ответ №1:
Предположим $t0
, содержит 6-битное поле, которое вы хотите переместить в биты 10-15 $t1
.
Вы могли бы рассмотреть этот подход:
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