Zilog EZ80F916 User Manual
Page 232

UM014423-0607
ZiLOG Developer Studio II
eZ80Acclaim!
®
User Manual
212
If parent is specified rather than offset, the parent must be the name of a previously
defined structure, and the offset is the size of the parent structure. In addition, each name
in the parent structure is inserted in the new structure.
Each element can have an optional label, such as name_1, which is assigned the value of
the element’s offset into the structure and which can be used as the symbolic offset. If stag
is missing, these element names become global symbols; otherwise, they are referenced
using the syntax
stag.name
. The directives following the optional label can be any space
reserving directive such as
DS
, or the
.TAG
directive (defined below), and the structure
offset is adjusted accordingly.
The label ssize, if provided, is a label in the global name space and is assigned the size of
the structure.
If a label stag is specified with the
.ENDSTRUCT
directive, it must match the label that is
used for the
.STRUCT
directive. The intent is to allow for code readability with some
checking by the assembler.
An example structure definition is as follows:
DATE
.STRUCT
MONTH
DS
1
DAY
DS
1
YEAR
DS
2
DSIZE
.ENDSTRUCT
DATE
NOTE: Directives allowed between
.STRUCT
and
.ENDSTRUCT
are directives that specify
size, principally
DS
,
ALIGN
,
ORG
, and
.TAG
and their aliases. Also,
BLKB
,
BLKW
,
and
BLKL
directives with one parameter are allowed because they indicate only
size.
The following directives are not allowed within
.STRUCT
and
.ENDSTRUCT
:
•
Initialization directives (
DB
,
DW
,
DL
,
DF
, and
DD
) and their aliases
•
BLKB
,
BLKW
, and
BLKL
with two parameters because they perform initialization
•
Equates (
EQU
and
SET
)
•
Macro definitions (
MACRO
)
•
Segment directives (
SEGMENT
and
FRAME
)
•
Nested
.STRUCT
and
.UNION
directives
•
CPU instructions (for example,
LD
and
NOP
)