.REPEAT / .UNTIL / .UNTILCXZ / .FOREVER

繰り返しブロックを作成します。

構文    .REPEAT
      statements...
    .UNTIL  cond

    .REPEAT
      statements...
    .UNTILCXZ  [cond]

    .REPEAT
      statements...
    .FOREVER

例    .REPEAT
      CALL    SUBR
      DEC    CX
    .UNTIL  CX > 0

    .REPEAT
      CALL    SUBR
    .UNTILCXZ

    .REPEAT
      inc    ax
      .break .if sword ptr ax >= bx
      dec    bx
    .FOREVER

cond には、.IF 文と同様の条件式を記述します。statements には、任意のプロセッサ命令をいくつでも記述できます。

.REPEAT 文は .WHILE 文と似ていますが、ループの内容を最低 1 回は実行する点が異なります。

.

UNTIL 文を使用すると、cond が偽である限り statements が繰り返し実行されます。

.UNTILCXZ 文を使用すると、LOOP 命令が生成されます。CX レジスタがデクリメントされ、0 になるとループが終了します。cond を指定したときは、これに加えて cond が真になったときもループが終了します。

.FOREVER 文〔LASM〕を使用すると、永久にループが続行されます。通常はループ内に .BREAK 文を記述してループを終了させます。

[目次]