0

「sll」操作を使用してビットをシフトすることで乗算を実行する MIPS アセンブル言語プログラムを作成しています。ここに私のソースコードがあります:

    .text
    .globl  main

main:
    ori     $5,$0,2     # put x into $5
    ori     $6,$0,4        # put y into $6
    sll     $5,$5,3        # put 8*x into $8
    sll     $6,$6,1        # put 2*y into $9
    subu    $10,$8,$9      # $5 - $6, put result in 10
    addiu   $10,$10,14     # add register 10 and number 14, put result in 10

ファイルの終わり

私の「sll $5, $5, 3」行は、レジスタ 5 の内容を取得し、2^3 で乗算してから、レジスタ 5 に戻します。16 を表示する代わりに、10 を表示します。私の推測では、3 ビット シフトはパフォーマンスがオーバーフローの問題を引き起こしていますが、これを修正する方法が思いつきません。

4

0 に答える 0