H8/300H-CPU

 H8/300FシリーズにはH8/300F-CPUと呼ばれるCPUが内臓されている。H8マイコンにはシリーズ全体として命令に互
換性があるように作られているため,H8シリーズのプログラムは共通に使用する事が可能である。このような互換性は
ソフトウェアの資産活用に大切なことと言える。

1.3.1 レジスタ構成

 H8/300F-CPUは,32ビット長の汎用レジスタを8本,24ビットのプログラムカウンタ,8ビットのCCR(コンディションコー
ドレジスタ)をもっている。


(1) 汎用レジスタ

 H8/300F-CPUは,8本の32ビット長の汎用レジスタ(ER0〜ER7)を持っている。これらの汎用レジスタは,同等にアキュ
ムレータ,インデックスレジスタ,アドレスレジスタなどの機能を持っている。ただし,ER7だけはSP(スタックポインタ)と
しての機能を持つ。
 汎用レジスタは分割して,16ビットレジスタや8ビットレジスタとして使う事も出来る。16ビットレジスタとしては,汎用レジ
スタR(R0〜R7)と汎用レジスタE(E0〜E7)とが使用でき,それぞれ同等の機能を持っている。8ビットレジスタとしては,汎
用レジスタRL(R0L〜R7L)と汎用レジスタRH(R0H〜R7H)が使用でき,それぞれ同等の機能を持っている。図1.3に汎用
レジスタの形式図を示す。



図1.3 汎用レジスタ

(2) PC(プログラムカウンタ)

 PC(プログラムカウンタ)は,CPUが次に実行する命令のアドレスを示している。H8/300H-CPUは16ビットCPUである
ので,命令は必ず偶数アドレスより格納される。したがって,プログラムカウンタの最下位ビットは常に0である。
 プログラムカウンタの大きさは24ビットで,16Mバイトのアドレス空間を構成している。これを図1.4に示す。



図1.4 プログラムカウンタ


(3) CCR(コンディションコードレジスタ)
 
 CCR(コンディションコードレジスタ)は,CPU内の状態を示すレジスタである。CCRの構成図を図1.5に示す。汎用レジ
スタの処理の結果は次のような状態がセットされる。



図1.5 コンディションコードレジスタ


・キャリビット(C):加算などで,最上位ビットのキャリ(carry:桁上がり)があるときや,減算などで,最上位ビットのボロー
(borrow:借り)が生じたとき,1になる。

・オーバーフローフラグ(V):演算の結果,汎用レジスタが扱うことが出来る数値の範囲を越え(overflow),正しい答えが
得られない時,1となる。

・ゼロフラグ(Z):値が零になると1になる。

・ナガティブフラグ(N):値が負数(negative)になると1になる。最上位ビットがセットされる。

・ユーザフラグ(U):利用者が自由に使用できるビット。

・ハーフフラグ(H):ハーフキャリ(half carry)フラグは,主に加算や減算の結果を10進数に補正する時に用いる。

・ユーザフラグ/割り込みマスクフラグ(UI):ユーザフラグまたは,割り込みマスクビットとして使用できる。

・割り込みマスクビット(I):割り込みを許可するか禁止するかを示すビット。このビットが0の時,割り込みが可能になる。
割り込み処理が開始されると,このビットは1になる。



1.3.2 データ構成

 メモリの番地は,バイト単位に割り振られる。メモリ上のワードデータ(16ビット)やロングワードデータ(32ビット)は,2つ
の番地や4つの番地に記憶される。図1.6に示す例で説明すると,例えばワードデータ1000110010100001(2進数)を1000
番地(16進数)に記憶する時,上位8ビットを1000番地に,下位8ビットを1001番地に記憶される。ロングワードデータも同
様で,上位8ビット順に番地に記憶される。




図1.6 メモリ上のデータ構成


1.3.3 動作モード
 
 H8/300H-CPUには,ノーマルモードとアドバンスモードがある。各二つのモードには該当するH8マイコンチップにより
設定されており,H8/3664Fはノーマルモードで動作する。
 ノーマルモードとアドバンスモードの違いは,アクセスできるアドレス空間やスタックなどのアドレスの扱いが異なる点
にある。H8/300H-CPUには,下位のH8/300シリーズに搭載されている8ビットCPUに,さらに32ビット演算などの機能を
追加している。H8/300H-CPUのノーマルモードは拡張された24ビットのアドレス空間をサポートしている。
 ノーマルモードでは,H8/300H-CPUに拡張された命令の機能は全て使用できるが,アドレスは下位16ビットのみが使
われる。






トップへ
トップへ
戻る
戻る