レジスタは,値が保存されるところです。プログラムの実行中に値がどんどん変わります。用途によって,5つあります。
公式の仕様書には,4種あると書いてあります。汎用レジスタ,スタックポインタ,プログラムレジスタ,フラグレジスタが書いてあります。
さらに,CPU内で,命令を入れる,IR(命令レジスタがあります)
レジスタがあり,レジスタは,5つです。
汎用レジスタ GR(General Register)
GR0〜GR7 までの8個,GR0以外の,GR1〜GR7は,指標レジスタとしても使用可能
それぞれ,16ビットです。
スタックポインタ SP(Stack Pointer)
スタックの最上段のアドレスを保持
プログラムレジスタ PR(Program Register)
次ぎに実行する命令語の先頭アドレスを保持。Program Counter(PC)ということもある。
16ビットです。
フラグレジスタ FR(Flag Register)
3bitで,それぞれ,OV(Overflow Flag),SF(Sign Flag),ZF(Zero Flag)と用途が決まっています。
- OF 算術演算時に,-32768〜32767 に収まらないとき,または,論理演算時に,0 〜 65535 に収まらないときに,1,それ以外は,0
- SF 演算結果の符号がマイナス,即ち,ビット番号15が,1のときに,1,それ以外は,0
- ZF 演算結果のビットが全て0のとき,1,それ以外は,0
命令レジスタ IR(Instraction Register)
命令が入ります。命令は,2バイトあるいは4バイトですので,命令レジスタは,4バイトあり,32ビットです。
これで,「
CASL とハードウェア」は,終わりです。次は,「
CASL を知っていたら解ける関午前問題」です。