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


PICBASICコンパイラ

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

[第17回]



●四則計算

四則というのは加減乗除の計算法則のことです。
小学校の算数です。
小学校の算数だからと馬鹿にしてはいけません。
すべての計算の基礎です。
そういうことですからもちろんPICBASICコンパイラにも組み込みました。
PICBASICコンパイラの記号では+−*/を使います。
8ビットの正の数のみの計算です。
負数は扱いませんから00〜FF(0〜255)の間の計算です。
最初は簡単な2数の加算と減算を組み込みました。

プログラム例です。

PRINT文はデバッグのための機能です。
変数の値は16進数で表示されます。
変数名の前に%をつけると10進数で表記されます。

最初はとりあえず2変数間の+−だけでしたがそれだけではいかにもお粗末ですのでそれ以上の変数、定数の間での加減算が行なえるようにしました。
下はそのプログラム例です。

1行の中で表示できる範囲ならば変数、定数の数に制限はありません。
ただし途中の計算を含めて扱える数値の範囲は0〜255ですからそれを越えない範囲で計算をする必要があります。
計算の結果が255を越えてもエラーにはなりませんが8ビットを越える上位のビットの値は無視されます。
また計算の結果がマイナスになってもあくまで8ビットの正数値として扱われることに注意してください。
たとえば3−5は16進数のFE(254)になります。
下はその計算例です。

FEは符号付の数として扱うと−2になりますから計算そのものは間違ってはいません。

( )を含めた計算もできるようにしました。
下はそのプログラム例です。

さきほどのプログラムの40行を書き換えて( )付きの式にしました。
通常の計算は前から順に行なわれますが( )があるときは( )内の式が先に計算されます。
( )を多重に使うことも許されます。

PIC16以前はPICの命令にはADD(加算)とSUB(減算)しかありませんでした。
PIC18からは8ビットの符号無し乗算(MULT)命令が組み込まれました。
それ以前のPICでは乗算は必要ならばサブルーチンで組んだのですがそれが1命令で実行できるようになったのはありがたいことです。
しかし除算の機能まではありませんからそれはサブルーチンとして組むしかありません。 
下は*/を含めたサンプルプログラムです。

8ビットの除算ですから整数同士の割り算になります。
計算結果の端数は切り捨てになります。
REMはそのとき除算で出た余りを格納する変数です。
REMはコメント文を示す命令(REMARK)と同じですが文の中で使われる位置が違いますから混同はされません。

以上の機能があれば8ビットの四則演算としては十分でありましょう。

PICBASICコンパイラ[第17回]
2023.5.2upload

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