代码之家  ›  专栏  ›  技术社区  ›  Connor D

不使用ror指令的逻辑旋转?

  •  0
  • Connor D  · 技术社区  · 6 年前

    我试图编写一个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”一直向右移动为止。

    1 回复  |  直到 6 年前
        1
  •  3
  •   user555045    6 年前

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

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