我正在尝试编写ASM,该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”一直向右移动为止。
答案 0 :(得分:3)
例如,您可以手动将这些底部的位放回顶部
sll $t0, $s2, 28
srl $s2, $s2, 4
or $s2, $s2, $t0