【PICの命令の構造】
PICのミドルレンジファミリーの命令は全部で35個しかありません
が、これらをその内部構造で大分類すると、下図の様に3種類しか
ありませんので、覚えるのも、使うのも簡単です。
次ぎのページから、これらの命令を駆使してプログラムを作る方法を、
順次命令毎に説明して行きます。
【命令構造の説明】
上図の命令の構造を説明します。
(1)まず、命令は全て14ビットを単位として構成されており、これが
プログラムメモリの1番地当たり1命令という形で格納されます。
余談ですが、このような構造を持ったマイコンのことをRISC構造
のマイコンと呼称します。
(2)そしてこの番地はプログラムカウンタで指定され、その指定された
番地の命令が呼び出されて実行されます。
実行されると、まず命令コードが解読され、その結果、上記のどの
構造かが判定されてから、上記の構造毎に別の処理がされること
になります。
(3)構造(a)の場合には、演算が中心となる命令で、レジスタファイルの
f 番地にあるデータレジスタが演算の対象となります。
dビットは結果の格納場所を指定します。
f は 7ビットしかありませんから、指定できるレジスタファイルは
128個までのレジスタということになります。
これでは一寸不足する場合もあるので、Bankという考え方を採用
して128×4個のレジスタが指定できるように工夫しています。
詳細は、PICのメモリーアーキテクチャ を参照して下さい。
(4)構造(b)の場合には、ビット演算の命令で、レジスタファイルの f 番地
のデータの b ビット目を対象とした演算を実行します。
データとして使われるレジスタは8ビットですから、3ビットのbでデータ
の8ビットが全て指定できることになります。
(5)構造(c)の場合には、コンスタント k を演算の対象とします。
このコンスタント kは8ビットしかありませんので、8ビットで表現でき
る大きさのデータしか扱えません。
しかし、ジャンプ命令などの時、kが8ビットしかないということは、
最大でも256番地しか離れたところまでしかジャンプ出来ないという
ことになってしまうので、これを解決するために、Pageという考え方
を採用して工夫しています。
詳しくは、PICのメモリーアーキテクチャを参照して下さい。