Go to the first, previous, next, last section, table of contents.

Repetitive sections of assembly

Two preprocessor directives allow you to repeatedly issue copies of the same block of assembly code.

.AREPEAT aexp
.AENDR
If you simply need to repeat the same block of assembly over and over a fixed number of times, sandwich one instance of the repeated block between .AREPEAT and .AENDR. Specify the number of copies as aexp (which must be an absolute expression). For example, this repeats two assembly statements three times in succession:
        .AREPEAT        3
        rotcl   r2
        div1    r0,r1
        .AENDR
.AWHILE expra cmp exprb
.AENDW
.AWHILE stra cmp strb
.AENDW
To repeat a block of assembly depending on a conditional test, rather than repeating it for a specific number of times, use .AWHILE. .AENDW marks the end of the repeated block. The conditional comparison works exactly the same way as for .AIF, with the same comparison operators (see section Conditional assembly). Since the terms of the comparison must be absolute expression, .AWHILE is primarily useful within macros. See section Defining your own directives.

You can use the .EXITM preprocessor directive to break out of loops early (as well as to break out of macros). See section Defining your own directives.


Go to the first, previous, next, last section, table of contents.