LPSTACKP & LPSTACKA

LPSTACKPとLPSTACKAはループスタック用の一時レジスタです。この二本のレジスタは組で使います。

HR A-19にはこの二本がループスタックのスタックトップであると書いていますが、大間違いです。

LPSTACKPとLPSTACKAはPUSH/POP命令を使ってループスタックにアクセスする際に一時的に値をおくためのレジスタです。LPSTACKPとLPSTACKAの値はDOループ命令には影響されません。高級言語からこのレジスタにアクセスすることはまずありません。

レジスタの構造

LPSTACKPは8ビット長、LPSTACKAは16ビット長です。PCスタックには24ビットアドレスが格納されており、LPSTACKPはページ部分(上位8ビット)、LPSTACKAはオフセット部分(下位16ビット)と対応します。LPSTACKPは16ビットレジスタとデータをやり取りする場合、右詰で上位は0フィル扱いになります。

LPSTACKPとLPSTACKA

図1 レジスタの構造

このレジスタは初期値が不定です。

API

VisualDSP++3.0 for 21xxはLPSTACKP/LPSTACKPに対するC/C++のAPIを用意していません(sysreg.h 1.7.4.1)。どうしても高級言語からアクセスしたい場合にはインライン・アセンブラを使ってください。

レイテンシ

特に記されていないため、LPSTACKA/LPSTACKPへの書き込みの次のサイクルにはデータが確定していると予想されます。

参照情報

項目 マニュアルのページ等
解説 HR A-19
スタックのデータの流れ HR 3-35
PUSH/POP命令 ISR 8-8
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |