JJ プログラム仙人修行日誌

2024/04/20 からは、プログラム仙人修行の日誌を書いてます。

レジスタは,4種類+1

レジスタは,値が保存されるところです。プログラムの実行中に値がどんどん変わります。用途によって,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 を知っていたら解ける関午前問題」です。