Я пытаюсь написать ASM, который использует логическое смещение вправо для смещения байта, не уничтожая байты в конце, а вместо этого поворачивая их вперед. По сути, я пытаюсь эмулировать инструкцию ROR без специального использования этой инструкции.
Я знаю, что правильная инструкция сдвига автоматически заменяет оставшиеся пробелы нулями, но есть ли способ потенциально изменить это значение?
.data
InArr: .word 0xe0000000
OutArr: .word 0
.text
.global main
main:
lw $s2, InArr
lw $s3, OutArr
loop:
#ror $s2, $s2, 4
srl $s2, $s2, 4
sw $s2, InArr
bne $s2, $s3, loop
syscall
В этом случае код выполняется до тех пор, пока «е» не сместится вправо.