「40年前のマイコンを作って動かす」 第四話 : クロスアセンブラ自作
i8085基板ができ上がったので、本格的に動作テストに入りま
す。 このあたりになると、テストプログラムを用意するのに
いつまでもハンドアセンブルという訳にもいきません。 が、
前に書いたように、可能な限り "全て自作" にこだわるのが
モットーなので、定石の "CP/M+MASM" ではなく、Windows
上で動かせるクロスアセンブラを自前で作っちゃいました。
参考にしたのは、インテルが発行した "8080/8085 Assembly
Language Programming Manual" の "Chapter 3. INSTRUC-
TION SET"(各命令の詳細内容) だけ。 オペランドの式の評価
は全くの自己流です。 出力はアセンブルリストとインテルHEX
形式のオブジェクトコード、そして自作基板で32bitマイコン
のソースに相乗りさせるためのオブジェクトコードの3つです。
いつものように、Visual C# で作っていきます。 Visual C# は、
C や C++ よりもストリング(文字列)処理機能が超豪華なので、
アセンブラやコンパイラのような言語処理系を作るのは非常
に楽です。 例えば、文字列変数 str の中の "abc" という部分
を "XYZ" に置き換えるのは、
str.Replace("abc", "XYZ")
のように書くだけで済んじゃいます。 これを使えば、マクロを
簡単に展開することができます。
今のところWebで入手した Palo Alto版Tiny BASICのソース
さえアセンブルできれば良いので、それに最小限必要な部分
だけ作り込みました。 なので、エラー処理も未実装です。
正しく作られたソースしか掛けられません。 オペランドに書
かれている "XYZ SHR 8" のシフト演算子も「右8bitシフト」
しか用意していません。
最後にアセンブルリストの例です。 Excelで開くのを前提にし
て作ったので、ラベル・シンボルの一覧はExcel側でABC順、
アドレス順など後でいかようにもソートできます。
肝心のアセンブル結果ですが、インテルHEX形式ファイルも
Webにあったので照合してみたら、合っていたので ホッ!
« 「40年前のマイコンを作って動かす」 第三話 : 基板製作2 | トップページ | 「40年前のマイコンを作って動かす」 第五話 : 基板製作3 »
「工作」カテゴリの記事
「コンピュータ」カテゴリの記事
- "Turbo HAMLOG"のデータを i Phone で活用する!(2017.08.16)
- 「40年前のマイコンを作って動かす」 第八話 : 動作確認3(2016.03.04)
- 祝 30万アクセス! - お気に入りの写真セレクト(2016.02.26)
- 「40年前のマイコンを作って動かす」 第七話 : 動作確認2(2016.03.02)
« 「40年前のマイコンを作って動かす」 第三話 : 基板製作2 | トップページ | 「40年前のマイコンを作って動かす」 第五話 : 基板製作3 »
コメント