CNTR

CNTR ( Counter )はDOループ命令が使用するカウンターレジスタです。あらかじめこのレジスタに値を設定してDOループ命令を実行すると、設定した値の回数だけ繰り返します。

CNTRはDOループ命令を実行するとすぐにカウンタースタックにプッシュされます。そのため、DOループの中でCNTRを変更してもループの実行には影響はありません。

レジスタの構造

CNTRは16ビット整数レジスタです。内部にビットフィールドはありません。

図1 レジスタの構造

CNTRは内部構造をもちません。

API

VisualDSP++ 3.0 for 21xxにはCNTR用のAPIは用意されていません。CNTRレジスタはコンパイラがループをDOループ命令で実現するときに自動的に利用しますので、高級言語からいじる必要はありません。

レイテンシ

CNTRのレイテンシは以下のとおりです。

命令 CNTR=value;
レイテンシ 2

上の表のレイテンシは続く命令が

の場合です。それ以外の場合では、レイテンシは1です。

レイテンシが1のとき、直後の命令からその値を使うことができます。レイテンシが2以上のとき、直後の命令でその値を参照しようとすると、古い値を参照します。なお、この表のレイテンシの数え方はHRとは異なっています。

このレジスタにはインターロック機構はついていません。

参照情報

項目 マニュアルのページ等
ループと制御 HR 3-21
スタックと制御 HR 3-34
DOループ命令 ISR 8-22
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |