【命令の概要】
PIC18シリーズになって、これまでのミッドレンジに比べてアセンブラ命令は、
倍の75個に増えました。しかも上位互換性があるので、これまでのプログラム
の移植も容易にできます。
特に変更になったのは、これまですべて1ワード命令しか無かったのですが、
PIC18シリーズでは、3種類の2ワード命令が追加されました。
これは広いアドレス空間を直接扱えるようにしたもので、ページ切替のわずらわ
しさから解放されました。
また乗算命令も追加されましたので、これで演算関連処理がかなり楽にでき、
また高速にもなります。
命令はこれまでと同じように下記のような4種類に大別されます。
(1) バイト処理命令
(2) ビット処理命令
(3) リテラル処理命令
(4) 制御命令
【命令構造】
各命令の構造は1ワード16ビット、または2ワード32ビットを下図のように使って
構成されています。
特にジャンプ命令の種類が増えて、近い場所へのジャンプと遠い場所へのジャンプ
で使い分けができるようになりましたので、種類が多くなっています。
【命令の一覧】
全てのアセンブラ命令の一覧表が下記となります。
(1) バイト処理命令/ビット処理命令
算術演算、論理演算が主な命令です。
新たに追加された主な命令は、CPFxxx命令で、Wレジスタとデータメモリとの
比較をしてスキップする命令で、これまで2命令が必要であったものが、1命令
でできるようになりました。
またMOVFF命令も新規追加で、データ間で直接相手を指定して指定コピーが
できるので、これまで2命令必要だったものが1命令でできます。
さらにバイト乗算命令が追加されています。
(2) 制御命令
ジャンプ命令を中心とした命令で、特に種類が増えています。これまでのGOTO
やCALL命令は2バイト命令となって、全アドレス空間に直接ジャンプできます。
これまでの2kワードの範囲のジャンプ命令もBRA命令として残っていますが、
分岐命令はもっと近い場所にしかジャンプしないということで、256ワードの
範囲のジャンプ先に制限し、代わりに判定する種類が増やされました。
RETURN関連命令には高速リターンという種類が増えています。
(3) リテラル処理命令/テーブル処理命令
定数処理については、乗算命令の追加と、FSRを扱う2バイト命令が追加されて
います。
定数処理で全く新規に追加されたものは、テーブル処理命令で、プログラムメモリに
用意された大きな定数テーブルにアクセスして、データとして順に取り出す命令が
追加されました。