| ACB ジャンプ命令 <<L1R>>,<<L1>>,<<L2>> |
【ニモニックとオペランド】
ACB step, vreg, limit, pcdisp
【機能】
Add, compare and branch
加算と比較と分岐
【オプション】
なし
【命令フォーマットと表記法】
【解説】
加算、比較、および条件分岐を一命令で行います。この命令はループのプリミティブで、処理は次頁の流れ図の点線で囲まれた部分に示されています。
step,vreg,limitを符号付き整数として処理及び比較します。ループカウンタを増加するときに、vregのオーバフロー検査は行われません。 ループの終りに、ループを何回行ったかを示すループカウンタに定数を加算し、終了条件がテストされます。
終了条件が満たされた場合には、次の命令でプログラムの実行が続行されます。終了条件が満たされない場合には、ループの先頭に戻ります。
ACB命令では、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の値よりも小さい場合には、プログラムの実行はPCにH'1234を加えて得られるアドレスへ分岐します。R0とR1の値が等しい場合、またはR0の値がR1の値よりも大きい場合には、次の命令に進みます。