beautypg.com

With and .endwith directives – Zilog ZUSBOPTS User Manual

Page 271

background image

UM017105-0511

Directives

Zilog Developer Studio II – ZNEO™

User Manual

243

The .UNION directive has the following form:

[stag]

.UNION

[name_1]

DS

count1

[name_2]

DS

count2

[tname]

.TAG

stagx [count]

...

[name_n]

DS

count3

[ssize]

.ENDSTRUCT

[stag]

An example of the

.UNION

directive usage is:

BYTES .STRUCT

B0 DS 1

B1 DS 1

B2 DS 1

B3 DS 1

BSIZE .ENDSTRUCT BYTES

LONGBYTES .UNION

LDATA BLKL 1

BDATA .TAG BYTES

LSIZE .ENDSTRUCT LONGBYTES

.WITH and .ENDWITH Directives

Using the fully qualified names for fields within a structure can result in very long names.
The

.WITH

directive allows the initial part of the name to be dropped.

The

.WITH

and

.ENDWITH

directives have the following form:

.WITH

name

;

directives

.ENDWITH

[name]

The identifier name may be the name of a previously defined

.STRUCT

or

.UNION

, or an

ordinary label to which a structure has been attached using a

.TAG

directive. It can also be

the name of an equate or label with no structure attached. Within the

.WITH

section, the

assembler attempts to prepend “name.” to each identifier encountered, and selects the
modified name if the result matches a name created by the

.STRUCT

,

.UNION

, or

.TAG

directives.

The

.WITH

directives can be nested, in which case the search is from the deepest level of

nesting outward. In the event that multiple names are found, a warning is generated and
the first such name is used.

This manual is related to the following products: