MIPS 使用本机指令将用户输入数据加载到高 16 位

MIPS load user input data to upper 16-bits with native instructions

我目前正在仅使用本机指令在 MIPS 中编写除法算法。我遇到的一个问题是该算法要求除数位于寄存器的左半部分。现在,如果我要立即加载,我将只使用 LUI。但是由于我正在使用系统调用从用户那里获取输入,所以它被传递到一个寄存器。我不知道该怎么做。

这是我目前的存储方式:

    addi $v0, [=10=], 5
    syscall
    add $a1, [=10=], $v0    #store divisor into $a1

谢谢。

执行左移 16 位:

sll $a1, $v0, 16          #$a1 = $v0 << 16 

$v0 的高 16 位被丢弃。