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, the following 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 Conditional
assembly).
Since the terms of the comparison must be absolute expression, .AWHILE
is primarily useful within macros. See 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 Defining your own directives.