beautypg.com

While structured assembly block inputs – Zilog Z8F0130 User Manual

Page 346

background image

Using the Macro Assembler

UM013037-1212

322

Zilog Developer Studio II – Z8 Encore!
User Manual

sizes, and the user must consult the appropriate operating system users guide for such
limitations.

The

.$REPEAT

and

.$UNTIL

directives must be coded in matching pairs. That is, it is

not legal to code a

.$REPEAT

directive without a matching

.$UNTIL

directive

appearing later in the source module nor is it legal to code an

.$UNTIL

directive with-

out a matching

.$REPEAT

directive appearing earlier in the source module.

The

.$BREAK

and

.$CONTINUE

assembler directives can only appear between

enclosing

.$REPEAT

and

.$UNTIL

directives (or between

.$WHILE

and

.$WEND

directives). It is not valid for the

.$BREAK

and

.$CONTINUE

directives to appear in

any other context.

The

.$BREAK

directive has an optional

.$IF

conditional parameter.

The

.$CONTINUE

directive has an optional

.$IF

conditional parameter.

None of the

.$REPEAT

,

.$BREAK

, .

$CONTINUE

, and

.$UNTIL

assembler directives

can be labeled. If a label is specified, a warning message is issued, and the label is dis-
carded.

WHILE Structured Assembly Block Inputs

The

.$WHILE

,

.$BREAK

,

.$CONTINUE

, and

.$WEND

assembler directives are used to test

execution-time conditions and conditionally execute object code based on the results of
the test.

Syntax

.$WHILE

condition1 [; comment]

statements

[

.$BREAK

[ .$IF condition2 ] [; comment ] ]

[ statements ]

[

.$CONTINUE

[ .$IF condition3 ] [; comment ] ]

[ statements ]

.$WEND

[; comment ]

The following qualifications elaborate the syntax and semantics of the structured assembly
test directives. Unless otherwise specified, violations of these qualifications cause the
assembly to fail.

The

.$WHILE

and

.$WEND

assembler directives must be specified in that order.

The

.$BREAK

assembler directive is optional. It can be specified an arbitrary number

of times between the

.$WHILE

and

.$WEND

assembler directives.