浮動小数点レジスタに関係するマシン命令のMIPSバイナリコードを書き出そうとしています。しかし、浮動小数点命令のオペコードは見つけることができますが、どの数値がどの浮動小数点レジスタを参照しているかはわかりません。私の本とインターネットは、$ t1を参照する場合に使用する番号レジスタを教えてくれますが、$f1を参照する方法に関する情報が見つかりません。
1 に答える
32個の浮動小数点レジスタがあります:$f0
..。$f31
ただし、すべての浮動小数点演算は(初期のMIPSプロセッサでは)個別の処理ユニットであるFPU(浮動小数点ユニット)で実行されるため、通常の(整数)コマンドで浮動小数点レジスタにアクセスすることはできません。FPUコマンド用のFPUレジスタとCPUコマンド用のCPUレジスタ。
写真と透明な説明があり ますhttp://www.cim.mcgill.ca/~langer/273/12-coprocessors.pdf
すべてのFPUコマンドは、コプロセッサー1(CP1)のコプロセッサー命令としてエンコードされます。http: //www.cs.sunysb.edu/~lw/spim/MIPSinstHex.pdfの最初と最後のページを確認してください。
フィールドft(5)fs(5)fd(5)は、レジスタのコードです(すべて5ビット幅です)。$f0は0としてコード化されます。$ f31は31(dec)または0x1f(hex)です。ダブルレジスタ値(64ビットダブルフォーマット)の場合、レジスタペアの最初のレジスタの数のみが記録されます(偶数のレジスタ番号のみが許可されます:0,2 ..30)。
オペコードの詳細な表は次のとおりです: http: //www.math.unipd.it/~sperduti/ARCHITETTURE-1/mips32.pdf(ページA-73)