beautypg.com

Zilog Z8F0130 User Manual

Page 344

background image

Using the Macro Assembler

UM013037-1212

320

Zilog Developer Studio II – Z8 Encore!
User Manual

Syntax

.$IF

condition1 [; comment]

statements

[

.$ELSEIF

condition2 [; comment ] ]

[ statements ]

.

.

.

[

.$ELSE

[; comment ] ]

[ statements ]

.$ENDIF

[; 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

.$IF

,

.$ELSEIF

,

.$ELSE

, and

.$ENDIF

assembler directives must be specified

in that order.

The

.$ELSEIF

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

of times between the

.$IF

and

.$ENDIF

assembler directives.

The

.$ELSE

assembler directive is optional. It can be specified at most once between

the

.$IF

and

.$ENDIF

directives.

If used, the

.$ELSE

assembler directive must be coded after any

.$ELSEIF

direc-

tives.

Any valid assembler statement can appear in the statements sections of the structured
assembly test directives. This means, among other things, that structured assembly test
directives can be nested. The structured assembly test directives can be nested up to
255 levels.

Nested

.$ELSEIF

and

.$ELSE

directives are associated with the most recent

.$IF

directive.

There is no preset limit on the number of statements that can appear in the statements
sections; there can be any number of assembler statements in each statements section,
including zero. The operating system file system might impose limitations on file
sizes, and the user must consult the appropriate operating system users guide for such
limitations.

Each expression must be a conditional expression. See the

Expressions

section on

page 288.

The

.$IF

and

.$ENDIF

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

legal to code an

.$IF

directive without a matching

.$ENDIF

directive appearing later

in the source module; nor is it legal to code an

.$ENDIF

directive without a matching

.$IF

directive appearing earlier in the source module.