gasp.info: Loops
Go forward to Variables
Go backward to Conditionals
Go up to Commands
Go to the top op gasp
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 (*note Conditional assembly:
Conditionals.).
Since the terms of the comparison must be absolute expression,
`.AWHILE' is primarily useful within macros. *Note Defining your
own directives: Macros.
You can use the `.EXITM' preprocessor directive to break out of
loops early (as well as to break out of macros). *Note Defining your
own directives: Macros.
Created Wed Sep 1 16:42:12 2004 on bee with info_to_html version 0.9.6.