0

現在、n乗2関数を実行するための最良の方法を探しています。つまり、MIPS のコードは 2n を計算する必要があります。n は に格納されている正の数$a0です。ただし、現時点では、私の結果は 1 乗少なくなっています。

私の試み

main:

    # initialize 
    la  $a0,3       #n counter
    li  $s0,2       #base number
    li  $s1,0       #calculated value

While:  
    beq $a0,$zero,exit      #Checks if n is zero, if yes exit program 
    sllv $s1,$s0,$a0        #Shift left logical by n, this should do the math 2^n

exit:

QtSpim の結果

4

1 に答える 1

3

「失敗」はあまり有益なステートメントではありません。とにかく、の正しい構文はbeg $a0,$zero,j Exitですbeq $a0, $zero, exitが、そのチェックは必要ありません。isおよびshould be であるため、 notを使用してロード$s0する必要があります。102^01sll $s0, 2, $a0sllv $s0, $s0, $a0

于 2016-02-29T00:48:36.913 に答える