RTS

命令形式

[ IF <cond> ] RTS  [ (DB) ];

IF NE RTS;
RTS;

説明

コール命令で呼び出したサブルーチンから呼び出しもとの次のアドレスに戻ります。

動作としてはPCスタックから値をポップしてPCに代入します。PCスタックは33エントリーの内蔵スタックで、コール命令、割り込み、DO命令が共用します。つまり、これら三者の入れ子の合計は33レベルまで許されます。スタックの入れ子についての詳細はADSP-2191 HRM 3-34ページ、"Stack and Sequencing"を参照してください。

(DB)オプションをつけると遅延分岐を行います。この場合、RTS命令の次の2命令を無条件に実行するため、ストールが2サイクルに緩和されます。遅延分岐を行う時に注意が必要なのは即値DMストア命令と即値PMストア命令です。この二つは2ワード命令であるため、2命令分の場所を占有してしまいます。この命令を遅延スロットで実行する場合には遅延スロットの1スロット目に配置してください。なお、遅延スロットには以下の命令を置くことはできません。

RTS命令実行時のオーバーヘッドや制限についての詳細はISRの8-52ページと、HRMの3-13ページ"Branches and Sequencing"を参照してください。

文法要素

<cond> ::= EQ, NE, GT, LE, LT, GE, AV, NOT AV, AC, NOT AC, 


           SWCOND, NOT SWCOND, MV, NOT MV, NOT CE, TRUE
2191空挺団 | プログラム | EZ-KIT | こぼれ話 | アーキテクチャー | 命令 | レジスタ | DSP掲示板 | FAQ |