Zilog EZ80F916 User Manual
Page 233

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