2018.8.31
前へ
次へ
ホームページトップへ戻る


16ビットマイコンボードの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
いつか使ってみるつもりで入手してそのまま置いてあった16ビットCPUのことを思い出しました。
AMD社のAM188です。
その名の通り、CPUコアは80188互換の16ビットCPUです。
そのAM188を使った16ビットマイコンボードの製作記事です。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第79回]



●8086ラインアセンブラ

とうとう31日になってしまいました。
ご注文いただいておりますND80KL/86マイコンキット(および完成品)は、今月末にはお届けする予定だったのですが、とうとう間に合いませんでした。
お待ちいただいております皆様には誠に申し訳なく、心からお詫び申し上げます。
これはひとえに私の能力不足と見通しの甘さの故と恥じております。
現在システムプログラムの最後の仕上げにかかっております。
長い間お待ちいただいた上にさらにお待ちいただくのは誠に心苦しいのですが、あと10日のご猶予をお願い申し上げます。
できるだけ充実した内容のものにしてお届けしたいと頑張っておりますので、曲げてご了承賜りますようお願い申し上げます。

Z80ラインアセンブラは「KL5C80A12マイコンボードの製作」[第28回]で説明いたしました。
マシン語プログラムを作成するのにアセンブラは必須のツールです。
ちょっと長いプログラムや本格的なプログラムは最初にテキストエディタでソースプログラムを作成して、それをアセンブラにかけてオブジェクトプログラムを作成します。
しかしさらに短い本当にちょっとしたサイズのマシン語プログラムを即席で作ってすぐに使いたいという場合もあります。
そんなときにラインアセンブラがあると重宝します。
Z80ラインアセンブラも便利なことに間違いはありませんが、8086ラインアセンブラはもしあればこれは強力なツールとなりましょう。
ということで頭の中ではかなり前から8086ラインアセンブラも作ってしまいたいと考えてはいました。
しかし、それはいささか「ホネ」ではないかとどうしても躊躇してしまって、なかなか実現には至りませんでした。
上に書きましたように当初の予定から随分遅れてしまっておりますので、なおさら実現はむつかしいところだったのですが、どうしても作ってしまいたいという衝動に駆られて、とうとう作ってしまいました。

まだデバッグ中なので、コマンドの形にはなっていません。
アドレス8000〜のRAM上のユーザーエリアにロードしてテストを行ないました。

使い方などはZ80ラインアセンブラと同じですが、もちろんこれはAM188版ND80KL/86ボード上で実行しています。
4桁のアドレスの表示に対して8086アセンブラニーモニックで1行の命令を入力すると、直ちにマシン語に翻訳されて結果が表示されたあと、次のアドレスが表示されて入力待ちになります。

上の画面の続きです。

ラインアセンブラを終了するときは[Cntrl][B]を入力します。
翻訳されたマシン語プログラムが本当にメモリに書き込まれていることをDMコマンドで確かめました。
JP A000[Enter]で実行しました。
その後またDMコマンドで、プログラムの実行結果を確認しました。

今、気が付きました。
作成されたマシン語プログラムは正しく実行されていますが、JNZ LOOPの後ろに<>で囲んで表示されているジャンプ先アドレスが違っています。
本当は<A007>でなければいけないのに<A03C>になっています。
バグのようです。
急いで直すようにします。
本日はここまでです。

16ビットマイコンボードの製作[第79回]
2018.8.31upload

前へ
次へ
ホームページトップへ戻る