beautypg.com

Optional macro arguments, Exiting a macro, Optional macro arguments exiting a macro – Zilog Z8F0130 User Manual

Page 355

background image

UM013037-1212

Optional Macro Arguments

Zilog Developer Studio II – Z8 Encore!

User Manual

331

Optional Macro Arguments

A macro can be defined to handle omitted arguments using the

IFMA

(if macro argument)

conditional directive within the macro. The conditional directive can be used to detect if
an argument was supplied with the invocation.

Example

MISSING_ARG: MACRO ARG0,ARG1,ARG2

IFMA 2

LD ARG0,ARG1

ELSE

LD ARG0,ARG2

ENDIF

ENDMACRO MISSING_ARG

Invocation

MISSING_ARG R1, ,@R2 ; missing second arg

Result

LD R1,@R2

IFMA

refers to argument numbers that are one based (that is, the first argument is numbered

one).

Exiting a Macro

The

MACEXIT

directive is used to immediately exit a macro. No further processing is per-

formed. However, the assembler checks for proper

if

-

then

conditional directives. A

MACEXIT

directive is normally used to terminate a recursive macro.

The following example is a recursive macro that demonstrates using

MAXEXIT

to termi-

nate the macro.

Example

RECURS_MAC: MACRO ARG1,ARG2

IF ARG1==0

MACEXIT

ELSE

RECURS_MAC ARG1-1, ARG2

DB ARG2

ENDIF

ENDMACRO RECURS_MAC

RECURS_MAC 1, ’a’

Note: