将寄存器设置为 1 的 MIPS 指令

MIPS instructions to set a register to 1

这个问题在过去的几篇论文中出现过,但我在互联网上找不到任何相关信息。

哪6条单指令MIPS可以设置$v1来保存1的十进制值?

针对常见的误解,lilamove不是只是一条指令,而是伪指令,需要多个要执行的机器指令。正因为如此,我猜他们不是一个选择。

这是可以做这种事情的说明

addi $v1, $zero, 1
addui $v1, $zero, 1
ori $v1, $zero, 1
xori $v1, $zero, 1

# these use comparison
slt $v1, $zero,   # the last one can be any non-empty register
slti $v1, $zero, 1
sltu $v1, $zero,   # the last one can be any non-empty register
sltiu $v1, $zero, 1

# these use memory
lb $v1, one($zero)
lbu $v1, one($zero)
lh $v1, one($zero)
lhu $v1, one($zero)
lw $v1, one($zero)

one: .word 1

使用伪指令计数时,lila 也可用。