CNTR ( Counter )はDOループ命令が使用するカウンターレジスタです。あらかじめこのレジスタに値を設定してDOループ命令を実行すると、設定した値の回数だけ繰り返します。
CNTRはDOループ命令を実行するとすぐにカウンタースタックにプッシュされます。そのため、DOループの中でCNTRを変更してもループの実行には影響はありません。
CNTRは16ビット整数レジスタです。内部にビットフィールドはありません。
 
図1 レジスタの構造
CNTRは内部構造をもちません。
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 |