Assembly Language Help (alang.hlp) (Table of Contents; Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
Control-Flow Blocks
 Example                                   Up Contents Index Back
────────────────────────────────────────────────────────────────────────────
 
  Syntax:   .IF condition
               ifstatements
             [.ELSEIF condition
               elseifstatements]
               .
               .
               .
             [.ELSE
               elsestatements]
             .ENDIF
 
  See also: IF, Conditional Assembly Directives, Comparison Operators,
            Control-Flow Directives
 
  Description:
 
     Used for clear coding of common control-flow blocks. Generates
     comparison and conditional jump instructions so that if
     <condition> is true, the processor executes the instructions
     following .IF until the next .ELSEIF, .ELSE, or .ENDIF. .IF
     statements can be nested.
 
     The .ELSEIF statement is used to create a code block that is
     executed if the preceding .IF and .ELSEIF conditions are false,
     and the current .ELSEIF condition is true. There can be several
     .ELSEIF blocks within a .IF block. The .ELSEIF statement performs
     the same function as a .IF inside a .ELSE but does not create
     another nesting level of .IFs.
 
     .ELSE specifies an alternate code block if the matching .IF and
     previous .ELSEIF expressions are false.
 
     .ENDIF closes the current .IF, .ELSEIF, or .ELSE code block.
     The assembler optimizes to get the best possible code. For example,
 
         .IF  ax==0
     performs the comparison with:
         or   ax,ax
     which is more efficient than:
         cmp  ax, 0
                                    -♦-