emu
emu copied to clipboard
cybozu labs youth 7th
emu
https://github.com/sk2sat/vm の設計とか色々見直して新しく作っているx86エミュレータ
ビルド
make
ビルドには以下のオプションが指定できます.
BUILD_TYPE: ビルドのタイプを指定できます.DebugとReleaseが選択可能です.Debugを指定すると,DOUT()マクロによるデバッグ情報がエミュレーション時に表示されます.Releaseを指定すると,同マクロを無効化してコンパイルします. デフォルトではDebugが指定されています.
サンプル実行
make run
サンプルのバイナリのエミュレーションのテストが行えます. これには以下のオプションが指定できます.
-
ARCHアーキテクチャが選択できるような見た目をしていますが気のせいです. x86しか指定できないと思って下さい. -
MEMSIZEメモリサイズを指定できます. 単位はMBです. デフォルトでは4MBになっています. -
BIOSBIOSを指定できるような見た目をしていますが,これも気のせいです. 必ず--junk-biosを指定してください. -
FLOPPYフロッピーディスクイメージが指定できます. ようはブートデバイスを設定するところです.--fda hoge.imgのように指定してください. -
UIユーザーインターフェースを選択できます. デフォルトでは--guiが指定されています.UI=""のようにすると,ウィンドウを出さないで実行します.
エラー
全然実装が進んでいないため、よくエラーが発生します。ここにはエラーの種類のメモをしておきます。
not implemented
このエラーは、実装されていない動作が要求された時に発生します。このエラーのうち、
not implemented: code = 16進数
となっているものは、16進数が示す機械語が実装されていない、というエラーです。