フォト
2023年3月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

本 : My Favorite!

  • 磯田道史: 武士の家計簿

« 「40年前のマイコンを作って動かす」 第三話 : 基板製作2 | トップページ | 「40年前のマイコンを作って動かす」 第五話 : 基板製作3 »

2016年2月11日 (木)

「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順、
アドレス順など後でいかようにもソートできます。

Assembler_2

肝心のアセンブル結果ですが、インテルHEX形式ファイルも
Webにあったので照合してみたら、合っていたので ホッ!

にほんブログ村 その他趣味ブログ アマチュア無線へ
にほんブログ村

« 「40年前のマイコンを作って動かす」 第三話 : 基板製作2 | トップページ | 「40年前のマイコンを作って動かす」 第五話 : 基板製作3 »

工作」カテゴリの記事

コンピュータ」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

« 「40年前のマイコンを作って動かす」 第三話 : 基板製作2 | トップページ | 「40年前のマイコンを作って動かす」 第五話 : 基板製作3 »