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


PICBASICコンパイラ

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
まるでインタプリタ。でもコンパイラです。超カンタン超シンプルです。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第54回]



●アセンブラ in BASIC

PICBASICコンパイラはBASICのソースプログラム(テキストプログラム)をコンパイルしてPICのマシン語プログラムコードを生成します。
PICBASICコンパイラプログラムを作り始めた当初はその言葉の通りBASICの命令文からいきなりPICのマシン語コードに翻訳するという乱暴な方法でプログラムを構築していたのですが、さすがに途中で息切れをしてしまい、結局は定番通りBASICプログラムを一旦アセンブラプログラムに翻訳してからそれをマシン語に翻訳するという二段階方式に変更しました。
面倒なようですが急がば回れの言葉通り結局はそれが近道でした。

ということは。
PICBASICコンパイラでは2つの翻訳プログラムが働いています。
最初にBASICプログラム(テキスト形式)をPICアセンブラプログラム(こちらもテキスト形式です)に翻訳するプログラムです。
次にそのようにして作成されたPICアセンブラソースプログラムをPICマシン語プログラムコードに翻訳します。
そのプログラムはアセンブラのソースプログラムをマシン語のプログラムに翻訳しますからこれはPICアセンブラプログラムです。
PICBASICコンパイラはそのように2つのプログラムが働いて最終的にマシン語プログラムを生成するのですがその過程は連続して実行されるので見た目にはひとつのプログラムが働いているように見えます。
最初の過程でアセンブラソースプログラムファイル(ASMファイル)が作成され次のアセンブラプログラムの実行によってアセンブルリストファイル(LISTファイル)とマシン語コードファイル(BINファイル)が作成されます。

それで。
そのようにしてPICBASICコンパイラシステムを構築する作業をやっていて、途中で気が付きました。
途中の過程で作成されたASMファイルを読んでPICマシン語コードに変換するところは普通にアセンブラプログラムの働きです。
それならば。
BASICのソースプログラムの中にPICのアセンブラ命令を記述したら、それをマシン語コードに翻訳することも可能なのではないか?

うーん。
気が付かなければよかったのですけれど。
気が付いてしまったからにはやらないわけにはいきませんでしょう。
ということで。
今年もホットな夏になってしまいました。

本日は時間がありません(このところずっと時間がありません)。
書き始めたばかりですが本日はこれで終ります。
次回に続きます。

PICBASICコンパイラ[第54回]
2023.7.20upload

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