レジスタ

ここでは、H8/300H シリーズのレジスタの構成と使用法について説明する

レジスタのビット長と使用ビットに対する表記

32ビットの汎用レジスタ8本のどのレジスタの、どのビットをどう指定するか

ビット長 コード中での表記 使用ビット
32ビット ern 32ビット全体
16ビット en 32ビット中の上位16ビット
16ビット rn 32ビット中の下位16ビット
8ビット rnh 下位16ビット中の上位8ビット
8ビット rnl 下位16ビット中の下位8ビット

n は 0 から 7 までのレジスタの番号で、er7 は push-pop 命令のためのスタックポインタとして使用するため、プログラム中では使用しない。

レジスタの上位16ビットを8ビットずつ分けてアクセスする表記(例:e0l)は存在しない

er0 32bit e0 r0 r0h r0l

上図は汎用レジスタ1本の、重なっている様子を表現したもの。これが8本ある。

注意

e1er2 等、表記は多いが、実際のレジスタは8本しかなく、例えば er0r0h は同じレジスタの異なる大きさの範囲を示しているにすぎない。よって、e0r0 の組み合わせや r0lr0he0 等は同時に使用出来るが、例えば e0 に値が入っているときに er0 に値を代入したとき、もとの e0 の値は失われる。