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


超ローコストPICWRITERの製作

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
「PICBASICコンパイラ」からスピンオフ!!
過去記事を参照することなどを考えて該当する過去記事は「PICBASICコンパイラ」のまま連載回もそのままとします。
以後は前回記事からの流れで[第236回]からとします。
「PICBASICコンパイラ」はなるべく早く連載を再開したいと考えています。
PICはローコスト、高機能で種類も豊富なお手軽マイコンですがプログラムを書き込むためのWRITERが必要です。
それをできるだけ安価に作ってしまおうというプロジェクトです。
最終的には製品化を考えています(組立キット、完成品)。
〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

[第320回]



●PIC16アセンブラ(7)命令コードを追加

本日はまるっと1日かけて命令コードの追加とその検証作業を行ないました。
とりあえずはできたのですが念のためにテストをしたところ一部にプログラムミスがみつかりました。
本日は時間がありませんのでその修正は明日に持ち越します。
前回追加予定として赤で囲った命令に落ちがありました。
PIC12F629などのアセンブラ命令は35個です。
それに対してPIC16F1503の命令はData Sheetでは49個だと書いてあります。
しかし実際に数えてみると51命令ありました。
ミスプリントなのかバージョンアップか何かで増えたのかもしれません。
それはともかくとして増えた命令を以下に列挙します。
ADDWFC
ASRF
LSLF
LSRF
SUBWFB
MOVLB
MOVLP
BRA
BRW
CALLW
OPTION
RESET
TRIS
ADDFSR
MOVIW
MOVWI
16命令です。
このうちTRIS〜MOVWIは機種依存性が高いので追加しないことにしました。
無ければ困るというほどの命令ではないと思います。

テストとして作った同じ内容のソースファイルをPIC16アンブラとMPLABでアセンブルしてその結果を比較しました。
MPLABのリスト出力ファイル(右側)はコメント文が多くて並べて比較するにはちょいと不都合です。



そこで右側のリストは余計なコメント文を削除して比較がし易いようにしました。



どこかにも書いたと思いますがbankselは擬似命令です。
これも機種に依存しますから代わりにmovlb命令を使っています。
アセンブルの結果は同じマシン語コードになります。
2箇所不一致がありました。
追加したPICアセンブラプログラムのバグのようです。
bra $+5とbra $−3が正しく翻訳されていません。
本日は時間がありませんから明日修正をするつもりです。

超ローコストPICWRITERの製作[第320回]
2025.8.14 upload

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