←前へ :  INDEX :  次ページへ→


  次にLOOP命令の拡張版(?)を紹介する。アセンブラで唯一複合条件の分岐ができる命令である。

LOOPZ ( Loop if Zero ) :ゼロならばループ

LOOPE ( Loop if Equal ) :等しいならばループ

LOOPZ	SRC
LOOPE	SRC

   動作:(E)CX=(E)CX-1(ただしフラグは不変)、(E)CX≠0で、ZF=1ならSRCにショートジャンプ
  影響を受けるフラグ:なし
    SRC1:即値

LOOPNZ ( Loop if Not Zero ) :ゼロでないならばループ

LOOPNE ( Loop if Not Equal ) :等しくないならばループ

LOOPNZ	SRC
LOOPNE	SRC

   動作:(E)CX=(E)CX-1(ただしフラグは不変)、(E)CX≠0で、ZF=0ならSRCにショートジャンプ
  影響を受けるフラグ:なし
    SRC1:即値
  どちらも「LOOP」命令の直前に「CMP」命令や減算命令を置き、その結果イコール(ゼロ)でかつ、(E)CX≠0ならば繰り返す(LOOPZ,LOOPE)。
イコール(ゼロ)でなくかつ、(E)CX≠0ならば繰り返す(LOOPNZ,LOOPNE)。


←前へ :  INDEX :  次ページへ→