「天文屋のためのマイコン入門」レジスタファイルの例
本日3つ目の記事アップです。この連載最初からちゃんと読んでる人は、記事をさかのぼって読んでください。
前回、レジスタファイルの説明をしたので、PIC16F88のレジスタファイルを紹介しましょう。
これがレジスタファイルです。TMR2のような記号が入っているところは、ポートのように何らかの機能がすでに割り当てられている場所です。ですからそれ以外の目的には利用できまません。5番地のPORTAは既に出てきましたね。ポートのAグループです。
※のところはまだ何も割り当てられていませんが、将来割り当てられる可能性があるので勝手に使ってはいけません。
さて、32番地から127番地の灰色の部分ですが、ここはプログラムで自由に使っていいデータ領域です。ここが本来のメモリ領域と思っていいです。
たとえば、これからインタバルシャッターのプログラムを作りますが、残り露出時間を保存しておくメモリ領域が必要です。これを32番地に割り当てることができます。別に33番地でも127番地でもどこでもいいです。
このように自由に使っていい領域のレジスタを汎用レジスタといいます。
困った問題
さて、上のレジスタファイルを見るとレジスタは未使用も含めて、0番地から127番地までの128個あります。実はこの128個というのはマイコンとしては全然足りないのです。マイコンの中にはポート以外にもたくさんの機能があり、それらをレジスタに割り当てなければなりません。また、プログラムで使う汎用レジスタも大きなプログラムになればいっぱい使います。とにかく128個というのは全然少ないのです。
それではもっと増やせば良いのではないかと思います。実はそれが簡単にはできないのです。それが命令コストの問題です。
またまた出てきました命令コスト。この命令コストを理解すれば、難しいPICマイコンの概念がほんとよく分かるようになります。
次回命令コストについて、ちゃんとした説明をします。
| 固定リンク
コメント