hus*_*oud 0 hardware branch mips cpu-registers
我需要知道如何在不使用分支的情况下测试 MIPS 中两个寄存器的相等性?我需要制作一条与 beq 相同的新指令,而不使用分支...标签部分可以通过使用跳转指令轻松完成,但我们如何检查相等性?提前致谢
如果有两个数字X和Y,并且X - Y等于 0,那么X和Y相等。
因此,例如,如果您要比较的两个值位于$t0和中$t1:
# $t2 will be 0 if $t0 and $t1 are equal, and non-zero otherwise
subu $t2, $t0, $t1
Run Code Online (Sandbox Code Playgroud)
如果您想将结果标准化为 0(不等于)或 1(等于),您可以将上面的内容扩展为:
# Set $t2 to 1 if it's non-zero
sltu $t2, $zero, $t2
# Flip the lsb so that 0 becomes 1, and 1 becomes 0
xori $t2, $t2, 1
Run Code Online (Sandbox Code Playgroud)