最新の命令セット リファレンス マニュアルは、オンラインで無料で入手できます: MIPS® Architecture for Programmers Volume II-A: The MIPS32® Instruction Set Manual。そのリンクは Revision 6.06 December 15, 2016 です (つまり、MIPS32 Release 6を文書化しています)。
すべてのユーザーおよびスーパーバイザー/カーネル モード命令、およびすべての浮動小数点について、マシン コード エンコーディングを含む完全な詳細と、それらが何を行うかを示す操作セクションと共に説明します。MIPS32 リリース 6 で削除されたすべての命令が引き続き文書化されています。
最新バージョンについては、https://www.mips.com/products/architectures/mips32/を参照してください。mips.com には「クラシック コア」のセクションがありますが、それはまだ MIPS32 に遡るだけであり、歴史的なものではないようです。
balc
(ブランチおよびリンク コンパクト: ブランチ遅延スロットがなく、GRP31 が暗黙の宛先であり、26 ビットを解放する)の「可用性と互換性」セクションのサンプルoffset<<2
:
この命令は、リリース 6 で導入され、現在必須です。リリース 6 の命令は、リリース 6 よりBALC
前の命令と同じエンコーディングを使用しSWC2
ます。この命令は
、MIPS リリース 6 で主要なオペコードにSWC2
移動されました。COP2
または for LDXC1 fd, index(base)
(浮動小数点にインデックス付けされたダブルワードをロード)
この命令はリリース 6 で削除されました。MIPS64 リリース 1 以降の MIPS64 のすべてのバージョンで必要です。MIPS32 リリース 1 では使用できません。MIPS32 リリース 2 およびそれ以降のすべてのバージョンの MIPS32 で必要です。32 ビットまたは 64 ビット FPU であるかどうか、32 ビットまたは 64 ビット FP レジスタ モード (FIRF64=0 または 1、StatusFR=0 または 1) であるかどうかにかかわらず、必要な場合、FPU が存在する場合は常に必要です。
歴史的なものについては、cmu.edu Web ページでMIPS IV Instruction Set Revision 3.2 September, 1995を見つけました。命令がいつ導入されたかを一覧表示します。たとえば、MIPS I はdiv
、MIPS III はdmult
その他の 64 ビット命令、MIPS II はll
/sc
です。
各命令の効果に関する擬似コードのクイック リファレンスは、 https://inst.eecs.berkeley.edu/~cs61c/resources/MIPS_help.htmlです。エンコーディングの詳細は含まれていませんが、プログラム カウンターに対する分岐およびジャンプ命令の影響を正確に説明しています。(これは少しトリッキーです: それらは分岐遅延スロットに対して相対的またはセクション絶対的です。)
ただし、MIPS I 整数命令の場合でも完全ではありません。MIPS I に存在していた非整列ロード ヘルパー命令 LWL と LWR および対応する SWL/R ストアがありません。また、FP のものや、それ以降の MIPS 命令も含まれていません。のようにmul
(のみmult
)。他に何が欠けているのかわかりません。完全なリストに対して相互参照しませんでした。
上記にリンクされている MIPS-IV マニュアルは、 lwl
/lwr
が MIPS I で利用可能であることを確認しています (また、ロード遅延スロット制限がそれらに適用されることを文書化しています)。