ASTAT( Arithmetic Status )はALU/MAC/シフターで行った演算の結果がどのような性質であったかを保存します。ASTATの値はもっぱら条件実行文が参照します。
高級言語からこのレジスタにアクセスすることはまずありません。
レジスタは9ビット長です。転送命令で16ビットレジスタに格納するときには右詰になります。リセット後の初期値は0です。
図1 レジスタの構造
以下にビット変化の概略を説明します。詳細については必ずISRとHRを参照してください。
C/C++言語用に以下のインターフェースが用意されています。宣言はsysreg.hで行われています。
// #include <sysreg.h> sysreg_write(sysreg_ASTAT, 値) // 値をASTATに代入します 変数 = sysreg_read(sysreg_ASTAT) // ASTATの値を取得します sysreg_bit_clr(sysreg_ASTAT, MASK) // MASKの"1"と対応するASTATのビットを1にします。 sysreg_bit_set(sysreg_ASTAT, MASK) // MASKの"1"と対応するASTATのビットを0にします。 sysreg_bit_tgl(sysreg_ASTAT, MASK) // MASKの"1"と対応するASTATのビットを反転します。
ビットマスクはdef219x.hで定義されています。以下にその部分を引用します。
// #include <def219x.h> // Bit Positions #define ASTAT_AZ_P 0 // Bit 0: ALU result zero #define ASTAT_AN_P 1 // Bit 1: ALU result negative #define ASTAT_AV_P 2 // Bit 2: ALU overflow #define ASTAT_AC_P 3 // Bit 3: ALU carry #define ASTAT_AS_P 4 // Bit 4: ALU X input sign (ABS ops) #define ASTAT_AQ_P 5 // Bit 5: ALU quotient (DIV ops) #define ASTAT_MV_P 6 // Bit 6: Multiplier overflow #define ASTAT_SS_P 7 // Bit 7: Shifter input sign #define ASTAT_SV_P 8 // Bit 8: Shifter overflow // Bit Masks #define ASTAT_AZ MK_BMSK_(ASTAT_AZ_P) // ALU result zero #define ASTAT_AN MK_BMSK_(ASTAT_AN_P) // ALU result negative #define ASTAT_AV MK_BMSK_(ASTAT_AV_P) // ALU overflow #define ASTAT_AC MK_BMSK_(ASTAT_AC_P) // ALU carry #define ASTAT_AS MK_BMSK_(ASTAT_AS_P) // ALU X input sign (ABS ops) #define ASTAT_AQ MK_BMSK_(ASTAT_AQ_P) // ALU quotient (DIV ops) #define ASTAT_MV MK_BMSK_(ASTAT_MV_P) // Multiplier overflow #define ASTAT_SS MK_BMSK_(ASTAT_SS_P) // Shifter input sign #define ASTAT_SV MK_BMSK_(ASTAT_SV_P) // Shifter overflow
ASTATのレイテンシは以下のとおりです。
命令 | ASTAT=value; | POP STS; | |
---|---|---|---|
レイテンシ | 2 | 1 |
レイテンシが1のとき、直後の命令からその値を使うことができます。レイテンシが2以上のとき、直後の命令でその値を参照しようとすると、古い値を参照します。なお、この表のレイテンシの数え方はHRとは異なっています。
このレジスタにはインターロック機構はついていません。
項目 | マニュアルのページ等 |
---|---|
ビット割り当て | HR A-9 |
ALU命令に対するASTAT変化の一覧表 | HR 2-19 |
MAC命令に対するASTAT変化の一覧表 | HR 2-32 |
シフター命令に対するASTAT変化の一覧表 | HR 2-49 |
ロードレイテンシ | HR A-5 |