通常のアプローチは、CPUだけでなく、代表的な標準周辺機器のセットもエミュレートすることです。次に、libcとハードウェアドライバーが含まれているエミュレーターでオペレーティングシステムを起動します。Libcは、エミュレーターの仮想ハードウェアを呼び出すOSesドライバーを呼び出します。一般的な例については、DosBoxを参照してください。
あなたの質問の他の解釈は、完全なエミュレーターを書きたくないということですが、mips32以外のシステムでmips32バイナリーを実行できるようにするバイナリー互換性レイヤーです。その人気のある例は、PowerPCアプリケーションも実行できるMacOsX(Intel)です。
後者のシナリオでは、OSes ABI(アプリケーションバイナリインターフェイス)をエミュレートする必要があります。または、libcのABIを使用することもできます。どちらの場合も、エミュレータで実行されるスタブコードと、ホストで実行されるプロキシコードを実装する必要があります。
- スタブは関数呼び出し引数をシリアル化します
- ...そして、いくつかの特別な仮想命令を使用して、エミュレータメモリからホストメモリにそれらを送信します
- プロキシは引数(エンディアン、整数長、アドレス空間など)にパッチを適用する必要があります
- ...そしてホストシステムで関数呼び出しを実行します
- 次に、プロキシは出力関数の引数をペーシングしてシリアル化します
- ...そしてそれらをスタブに送り返します
- ...データを発信者に返します
ほとんどの呼び出しは汎用スタブ/プロキシでは機能しませんが、特定のソリューションが必要です。
幸運を!