beautypg.com

Ifndef (conditional assembly) – Echelon Neuron User Manual

Page 155

background image

IFNDEF (Conditional Assembly)

The Neuron assembler provides the following directives for conditional control of

the assembly of blocks of source lines: IF, IFDEF, IFNDEF, ELSE, and

ENDIF.
A conditional assembly block begins with the IF, IFDEF, or IFNDEF directive,

and ends with a matching ENDIF directive. A conditional block can contain at

most one matching ELSE directive.
Conditional assembly directives can be nested. Thus, a group of source-code lines

between an IF directive and a matching ELSE or ENDIF can contain additional

IF, IFDEF, or IFNDEF directives, and ELSE directives, as long as there are an

identical number of matching ENDIF directives. The maximum number of

nested directives is five. The total maximum number of conditional IF, IFDEF,

and IFNDEF directives for a single source file is 256.
Source-code lines that the assembler skips because of conditional assembly must

still conform to the Neuron assembler syntax.

Syntax:
The IFNDEF directive requires a symbol as its argument and cannot have a

label. The IFNDEF directive must be followed by a matching ENDIF directive.

IFNDEF symbol

If the symbol is not defined, the Neuron assembler processes the lines following

the directive, up to a matching ELSE directive, if any. If the symbol is defined,

the Neuron assembler skips all of the lines following the directive, up to a

matching ELSE directive, if any, or to the matching ENDIF directive.
You can define symbols anywhere in the assembly source file using the EQU

directive; see EQU (Equate Symbol). You can also provide a symbol to the

assembler using the --define command line on the console; see NAS Command

Switches.

Neuron Assembly Language Reference

145