CPU実験室

誰も見向きもしない古いCPUをいじって動かしてみようというプロジェクトです

初プログラミング

ROM上のプログラムが実行できる環境ができたので、初めての29kプロセッサのプログラムを書いてみます。マニュアルでインストラクションセットをざっと見てみたのですがだいたい見慣れたニーモニックが並んでいます。RISCとはいいますがそんなにとっつきにくい感じはありません。しいて言えばオペランドが3個ある命令があったりするのが変わってるかもしれません。

当然JUMP命令もあるわけで初プログラムはお約束の「JMP  $」からやってみます。およそマイクロプロセッサと名付けられたものは全てこのコードを実行できるのではないかと思われるメタコードです

 

f:id:O3I:20201029214953j:plain

 

マクロアセンブラASがAm29000をターゲットにできることがわかっていたので早速ソースを書いて通してみます。

ソースコードはたったこれだけ。1行目のCPU疑似命令でターゲットを指定しています

f:id:O3I:20201029213405j:plain

 

アセンブルは瞬時に通り、初プログラムなのにノーエラーです。といってもエラーに落ちようがない短いソースですが。

f:id:O3I:20201029212926j:plain

 

出力リスティングファイルです。バイナリコード「A0/00/00/00」が生成されたことがわかります。インストラクションのフォーマットに当てはめると即値PC相対アドレッシングでオフセット0へのジャンプとなるので、期待通りのコードになりました。

f:id:O3I:20201029213009j:plain