Обновление битового поля с помощью сборки MIPS

#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