« 「天文屋のためのマイコン入門」負の数の扱い | トップページ | 「天文屋のためのマイコン入門」IOポートの使い方を調べる »

2014年6月 6日 (金)

「天文屋のためのマイコン入門」命令とデータのまとめ

●命令には、転送命令、演算命令、制御命令がある。

●命令の操作の対象には、ワーキングレジスタ、レジスタファイル、数値の3つがある。

●ワーキングレジスタは唯一つしかない一時的な演算領域、命令コストが少ない。記号W

●レジスタは、プログラムのデータメモリであり、128個あつまりレジスタファイルを形成する。レジスタの中には、マイコン内蔵機能をアクセスするためのレジスタや、プログラムで自由に使える汎用レジスタがある。レジスタは命令中に番地を指定するので命令コストは高い。

●ワーキングレジスタ、レジスタ、数値は8ビットのデータであり、0から255までの数値を格納できる。

●命令体系は、命令コストの概念を導入すると、なぜそうなっているか自然と理解できる。

●転送命令は、片方がワーキングレジスタの場合だけ許される。レジスタファイル間の転送は同一番地を除いて許されない。

●演算命令は算術演算命令と、論理演算命令がある。演算命令は片方がワーキングレジスタの場合だけ許される

●データに1を加算することをインクリメントといい、1を減算することをデクリメントという。インクリメント、デクリメント命令がある。

●マイコンが扱う数の特徴として、最大値がある(255)、整数しか扱えない、負数の概念がないなどがある。

●レジスタファイルは128個のレジスタからなり、0番地から127番地まである。ただこれだけでは足りない。バンクの概念を使い、この4倍まで増やしている。

●バンクは、ページと理解すると分かりやすい。ページ番号はSTATUSレジスタの第5、第6ビットになる。

●STATUSレジスタはレジスタファイルの中のレジスタであり、番地は3である。STATUSレジスタはすべてのバンクにある。

●バンクは、絶対番地(通し番地)の上位2ビットと考えることができる。

●よく使うバンクはバンク0とバンク1である。これしか使わない場合、以下の命令でバンクを切り替えることができる。

ページ0にする
BCF  3,5

ページ1にする
BSF  3,5

●制御命令には、無条件ジャンプ命令と条件ジャンプ命令がある。

●ジャンプ命令は命令コストが高いので、条件ジャンプ命令は条件スキップ命令と無条件ジャンプ命令を組み合わせて実現される

●演算結果がゼロかどうかを保存するビットがあり、これをゼロフラグという。記号Zであらわす。

●ゼロフラグはSTATUSレジスタのビット2にある

●ゼロフラグが1か0かによって次の命令をスキップするかどうかの条件スキップ命令がある。

●加算においては、負数も扱うことができる(例-10のように)

以下、今までの説明で出てきた命令を一覧にまとめました。これ以外にも命令がありますが、必要な時はその都度説明しますが、基本的にこれだけで十分です。

1406061

全部で30数個ありますが、格納先がワーキングレジスタの場合とレジスタの場合の2通りがあり、それらを一つの命令と考えれば、命令の数は20数個です。とりあえず、これだけ覚えればなんとかなります。

|

« 「天文屋のためのマイコン入門」負の数の扱い | トップページ | 「天文屋のためのマイコン入門」IOポートの使い方を調べる »

コメント

コメントを書く



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




« 「天文屋のためのマイコン入門」負の数の扱い | トップページ | 「天文屋のためのマイコン入門」IOポートの使い方を調べる »