| SCB ジャンプ命令 <<L1R>>,<<L1>>,<<L2>> |
【ニモニックとオペランド】
SCB step, vreg, limit, pcdisp
【機能】
Subtract, compare and branch
減算と比較と分岐
【オプション】
なし
【命令フォーマットと表記法】
【解説】
減算、比較、および条件分岐を一命令で行います。この命令はループのプリミティブで、処理は次頁の流れ図の点線で囲まれた部分に示されています。
step,vreg,limitを符号付き整数として処理及び比較します。ループカウンタを減少するときに、vregのオーバフロー検査は行われません。
ループの終りに、ループを何回行ったかを示す数値をループカウンタに減算し、終了条件がテストされます。
終了条件が満たされた場合には、次の命令でプログラムの実行が続行されます。終了条件が満たされない場合には、ループの先頭に戻ります。
SCB命令では、sz ≠ 00のときには、pcdispのフィールドは使用せず(0にセット)、szで指定されたサイズのデータがpcdispの後に続きます。
【フラグ変化】
【発生EIT】
RIE step [Gen/r], limit [Gen/r]のアドレッシングモード違反 RIE sx,sy,sz = 11 OAJE/OAJT 分岐デスティネーションアドレスが奇数
![]()
【使用例】
汎用レジスタR0から1を引いて、その結果をR1と比較します。R0とR1の値が等しい場合、またはR0の値がR1の値よりも大きい場合には、プログラムの実行はPCにH'1234を加えて得られるアドレスへ分岐します。R0の値がR1の値よりも小さい場合には、次の命令に進みます。