ハードマクロ命令で仮想マシンを作ってみ...
 
通知
すべてクリア

ハードマクロ命令で仮想マシンを作ってみよう!


spinlock
投稿: 16
Topic starter
(@spinlock)
Active Member
結合: 2か月前

WZetaは8bit CPUでは、あまり見かけないハードマクロ命令があります。最大64命令を自分で作ることができるので仮想マシンを作ることも可能です。ただ一般的なCPUをエミュレーションすることは、ほぼ不可能なのでコンパイラが作りやすい命令を作ったり、TTLで作った自作CPUのアプリをWZetaでも動作するようにするなどの使い方があります。

8bit CPU ICF3-Zは開発が遅れていますが、WZetaのハードマクロ命令と同様の機能があります。ICF3-ZでWZetaのアプリを動作させるための仮想マシンを作れたりするかもしれませんが、ICF3-ZとWZetaの双方で動作する仮想マシンを作るほうが現実的のように思っています。

情報処理技術者試験の仮想計算機COMET IIのエミュレーションについては、以前、ほんの少し実装していますが、アセンブラソースレベル互換のものは、作れそうです。ちなみにCOMET IIのバイナリの規定はないので完全互換と言えるのかな。

Z80のエミュレーションについてはハードマクロ命令が16bitなのですが、これを8bitのZ80のコードだと思えばZ80をエミュレーションすることはできるかもしれません。そしてWZetaの分岐命令はワード単位のアドレスなのでZ80のバイト単位のアドレスと同一なのでWZetaのPC(プログラムカウンタ)をZ80のPCとして使える。それほど効率がいいエミュレーションにはならないのですがプログラムメモリにZ80のコードを置けることが利点になると思います。法律関係が不透明なのでZ80のエミュレーションを薦めているわけではありません。

LUA言語のような、もっと小さい言語を動作させるための仮想マシンを作るならWZetaは便利だと思われます。