Assembly 不使用ROR指令的逻辑旋转?
我试图编写一个ASM,它使用逻辑右移来移动一个字节,而不破坏末尾的字节,而是将它们旋转到前面。从本质上讲,我试图模拟ROR指令,而不是专门使用该指令 我知道右移指令会自动将剩余空间替换为0,但是否有可能更改该值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
.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)
是向左旋转。