« 「天文屋のためのマイコン入門」デジタルの3つの状態 | トップページ | 「天文屋のためのマイコン入門」転送命令を設計しよう »

2014年3月23日 (日)

「天文屋のためのマイコン入門」PICの命令を設計しようその1

ハードの説明が終わったので、今日からすこしプログラムの説明をしたいとおもいます。私も、PICのプログラムは初めてです。で、PICの命令表を見ているのですが、PICの命令は35個しかありません。普通のマイコンは100個以上あるのが相場ですから、かなり少ないです。しかも、まとめられる命令もあるので、実質28個くらいです。

1403230

このようにPICの命令は少ないのですが、反面、わかりにくい、覚えにくいと感じました。

その理由ですが、ワーキングレジスタに対する操作が制限されていることです。普通のマイコンはワーキングレジスタ(アキュームレータともいう)に対する操作は万能で、メモリ操作の方が多くの制約を受けます。

もうひとつは記法がわかりずらいです。命令の対象物(ワーキングレジスタとかレジスタファイル)の記号が、オペランドのほうになく、命令名の語尾についていることです。

ちょと聞きなれない言葉を出してすみません。とにかくわかりずらいことは確かです。

一方で、PICの命令を設計した人の立場に立てば、14ビット固定長命令という強い制約の中では、これしかなかったんだろうということは容易に想像つきます。記法のわかりにくさはありますが、たぶん私が設計しても同じようなものとおもいます。

つまり、PICの命令というのは、

使う人の側から考えると、難しく覚えにくいのですが、
PICを設計する側から言えば、もうこれしかないという最小の命令セット

であり、PICを設計する側から理解するのが、わかりやすいのではないかとおもいます。

ということで、

PICの命令表を天下り的に出して、この命令はこれこれね。

という説明をするのではなく、まったく白紙の状態から、PICの命令を設計するという立場にたって、PICの命令表を作成してみようとおもいます。

PICの命令を見ていると、なんでこの命令があって、この命令はないんだろうとかいろいろ不思議におもうことがあるとおもいますが、これからの説明を聞けば、すべて解決するはずです。

これから数回はPICの命令表をつくるという企画になります。マイコンを本当に理解したい人は読んでください。とりあえず、動くものがほしいという方は、読み飛ばしてもかまいません。

1 転送命令を設計する
2 演算命令を設計する
3 制御命令を設計する

これで、PICの命令表が完成します。

|

« 「天文屋のためのマイコン入門」デジタルの3つの状態 | トップページ | 「天文屋のためのマイコン入門」転送命令を設計しよう »

コメント

コメントを書く



(ウェブ上には掲載しません)




« 「天文屋のためのマイコン入門」デジタルの3つの状態 | トップページ | 「天文屋のためのマイコン入門」転送命令を設計しよう »