我对MIPS很新,我需要将这个MIPS代码转换为C:
addi $t0, $t0, 0
sltiu $t1, $t0, 1000
beq $t1, $0, 7
sll $t1, $1, 2
之后会进行更多操作,但这是我在翻译时遇到的问题。我认为这是符合(不是实际的代码):
if (condition)
go 7 lines down
但我对sltiu中的1000感到困惑,以及如何设置它。如果有人能帮助我,我会非常感激。谢谢!
答案 0 :(得分:1)
addi $t0, $t0, 0
#t0 = t0 + 0;
sltiu $t1, $t0, 1000
#t1 = (t0 < 1000) ? 1 : 0;
beq $t1, $0, 7
#if (t1 == 0)
# goto foo; /* label foo is 28 bytes down the program counter */
sll $t1, $1, 2
#t1 = $at << 2;
您可以将代码简化为:
if ($t0 >= 1000)
goto foo; /* label foo is 28 bytes down the program counter */