beautypg.com

Zilog EZ80F916 User Manual

Page 233

background image

UM014423-0607

ZiLOG Developer Studio II

eZ80Acclaim!

®

User Manual

213

.TAG Directive
The

.TAG

assembler declares or assigns a label to have a structure type. This directive can

also be used to define a structure/union element within a structure. The

.TAG

directive

does not allocate memory.

The

.TAG

directive to define a structure/union element has the following form:

[stag]

.STRUCT

[offset | : parent]

[name_1]

DS

count1

[name_2]

DS

count2

...

[tname]

.TAG

stagx [count]

...

[ssize]

.ENDSTRUCT

[stag]

The

.TAG

directive to assign a label to have a structure type has the following form:

[tname]

.TAG

stag

; Apply stag to tname

[tname]

DS

ssize

; Allocate space for tname

Once applied to label tname, the individual structure elements are applied to tname to pro-
duce the desired offsets using tname as the structure base. For example, the label

tname.name_2

is created and assigned the value

tname + stag.name_2

. If there are

any alignment requirements with the structure, the

.TAG

directive attaches the required

alignment to the label. The optional count on the

.TAG

directive is meaningful only inside

a structure definition and implies an array of the

.TAG

structure.

NOTE: Keeping the space allocation separate allows you to place the

.TAG

declarations

that assign structure to a label in the header file in a similar fashion to the

.STRUCT

and

XREF

directives. You can then include the header file in multiple source files

wherever the label is used. Make sure to perform the space allocation for the label
in only one source file.

Examples of the

.TAG

directive are as follows:

DATE .STRUCT

MONTH DS 1

DAYDS 1

YEAR DS 2

DSIZE .ENDSTRUCT DATE

NAMELEN EQU 30

This manual is related to the following products: