「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 ビット シフトはパフォーマンスがオーバーフローの問題を引き起こしていますが、これを修正する方法が思いつきません。