特别是将MIPS转换为C,sltiu

时间:2012-02-25 08:05:59

标签: c mips

我对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感到困惑,以及如何设置它。如果有人能帮助我,我会非常感激。谢谢!

1 个答案:

答案 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 */