概要 https://github.com/0n1shi/mipsemu CPUエミュレータを書いたのでまとめる。 今回書いたのはMIPS1のCPUエミュレータ。命令は全て実装したわけではなくC言語のコードいくつか書きクロスコンパイルしたバイナリを実際に動作させ、ある程度のコードが問題なく動作することを確認した。 実際には以下のようなC言語を書き、 int c = 0; int main(void) { int a = 10; int b = 3; c = plus(a, b); return 0; } int plus(unsigned int a, unsigned int b) { return a + b; } ビルドしたバイナリをエミュレータで実行した結果が以下になる。 実行した命令のトレースやレジスタの値、メモリダンプなどが出力される。 環境構築 クロスコンパイラ 開発はMac
![CPUエミュレータをつくる。 - レガシーガジェット研究所](https://cdn-ak-scissors.b.st-hatena.com/image/square/fed12cb298a9e0c6c7794ed67b00d888a53e6a33/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fk%2Fk--onishi%2F20210211%2F20210211153548.png)