「天文屋のためのマイコン入門」データの基本
ここのところマイコンの命令について説明してきました。今まで、転送命令と演算命令を説明しました。まだ制御命令が残っています。しかし、マイコンのプログラムは命令とデータからなります。命令とデータは双対なのです。ですから、命令だけ説明するのはバランスが悪いので、ここら辺で、データについても説明します。
データというのは大雑把に言えば数です。この数を入れるメモリやレジスタなどをデータということもあります。
さて、数といえば数学ですが、マイコンで扱う数は数学で扱う数と比べて以下のような違いがあります。実はこの違いの感覚が非常に重要なのです。
マイコンの数の特徴
●その1 限界値がある
数学ではいくらでも大きな数を扱うことができます。しかし、マイコンの世界では数を入れるメモリ単位のサイズが決まっているので、自動的に限界値があります。ちなみにPICマイコンの場合、8ビット以上の数を一度に扱えないので、その限界は0から255です。
以外に限界が小さいこのとに驚くかも知れません。PICマイコンでは1000という数でさえ、一度には扱えません。(小さい単位に分解して複数命令で扱うことはできる)
マイコンでは限界値を超えたら0に戻ります。たとえば、256は0と同じです。257は1と同じです。まったく同等です。つまり255を超えたら、256で割った余りがその数になります。これは数学で言うところモジュラー計算と同じです。
●その2 整数しか扱えない
マイコンでは小数は扱えません(扱えるのもある) これはそれがたとえ計算途中であっても同じです。次の計算をしてみてください。
3÷2×2=?
数学の世界なら、3÷2×2=1.5×2=3です。
また、3/2×2と考えて、2が約分できるから3です。
さて、マイコンの世界では3÷2は整数しか扱えないので、1.5ではなく1です。したがって、
3÷2×2=1×2=2
となります。また約分のような概念はありません。
●その3 正負(符号)の概念がない
さてマイコンの世界ではプラスとかマイナスの概念がありません。正確に言うとすべて正数として扱います。つまりマイナスがない。
マイコンをちょっと知っている方は、「いやそんなことはない、符号付きの命令があるではないか」と思うかも知れません。
確かに符号付きの命令や負ならフラグがセットされるような命令はあります。ただ、これはあくまでも人間が正負をそのように解釈しているだけであって、マイコン自体に正負の区別があるわけではありません。
また、マイコンのデータで、負の数は最上位ビットが'1'と教わることがあります。しかし、これも解釈次第です。マイコンからすれば最上位ビットが符号なのか、それともデータの第8ビットなのかまったく区別がありません。
さて、数学で扱うところの数とマイコンで扱うところの数ではこれだけ違いがあります。この違いを十分理解していないと、初めてマイコンを学習する人にはあれ?と思うことがあるかも知れません。
次回はもうちょっと詳しいデータの話をします。
| 固定リンク
コメント