В MIPS есть способ сместить двоичное число (0000), заполнив его MSB 1 (1000 и в следующий раз 1100 и в следующий раз 1110 и т. Д.) Каждый раз?
Если бит знака установлен, арифметическое смещение вправо сместится в 1 влево (предположительно для расширения знака)
sra Сдвиг правой арифметики на постоянное количество бит
sra
srav Сдвиг правой арифметики на переменное число бит
srav
"sra и srav ведут себя как sll и sllv, но смещаются вправо, а не влево. Знаковый бит сдвигается от самого старшего конца, а биты падают с самого младшего конца."
http://www.cs.umd.edu/class/sum2003/cmsc311/Notes/Mips/bitshift.html