Assembly 不使用ROR指令的逻辑旋转?

Assembly 不使用ROR指令的逻辑旋转?,assembly,mips,bit-shift,Assembly,Mips,Bit Shift,我试图编写一个ASM,它使用逻辑右移来移动一个字节,而不破坏末尾的字节,而是将它们旋转到前面。从本质上讲,我试图模拟ROR指令,而不是专门使用该指令 我知道右移指令会自动将剩余空间替换为0,但是否有可能更改该值 .data InArr: .word 0xe0000000 OutArr: .word 0 .text .global main main: lw $s2, InArr lw $s3, OutArr loop: #ror $s2, $s2, 4 sr

我试图编写一个ASM,它使用逻辑右移来移动一个字节,而不破坏末尾的字节,而是将它们旋转到前面。从本质上讲,我试图模拟ROR指令,而不是专门使用该指令

我知道右移指令会自动将剩余空间替换为0,但是否有可能更改该值

.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

在这种情况下,代码将一直运行,直到“e”完全向右移位。

例如,您可以手动将这些底部位放回顶部

sll $t0, $s2, 28
srl $s2, $s2, 4
or $s2, $s2, $t0

例如,您可以手动将这些底部位放回顶部

sll $t0, $s2, 28
srl $s2, $s2, 4
or $s2, $s2, $t0

为什么不能使用
ror
指令?是否有其他不允许使用的说明?相关:<代码>(n(32-c)是向左旋转。为什么不能使用
ror
指令?是否有其他不允许使用的指令?相关:。
(n(32-c)
是向左旋转。