条件分岐・ループ

1. 無条件分岐(JMP)

無条件分岐は、何の条件を指定しなくても、いきなりそのラベルに処理が飛びます。
下記の例では、1、2と出力して、jmp命令でprint_4 と言うラベルに処理が移ります。
その後は4を出力してプログラムが終了します。

  

2. 条件分岐(A > B)

『AよりBが大きい』を判定するためには以下の命令を利用します。
命令) cmp RSI , BBB ;(RSIとBBBを比較) ja target_Label ; RSI > BBBの場合にtarget_Labelに処理が移ります。

  

3. ジャンプ命令まとめ

幾つかのジャンプ命令を一覧にしておきます。
本内容以外にもジャンプ命令は存在しますが、ここでは紹介を省略します。

命令 内容
JA A > B の場合に処理が移る
JAE A >= B
JB A < B
JBE A <= B
JE A == B
JNE A <> B
JG A > B (符号付き)
JGE A >= B (符号付き)
JL A < B (符号付き)
JLE A <= B (符号付き)

  

4. ループ命令

処理を繰り返し実行します。
いつまで繰り返すかは、ECX レジスタの値が0になるまで繰り返します。
loop 命令を実行する事で、ECXレジスタの値は-1されます。
1減らされた後に、ラベルの先に処理が移ります。