beautypg.com

Zilog Z8F0130 User Manual

Page 326

background image

Using the Macro Assembler

UM013037-1212

302

Zilog Developer Studio II – Z8 Encore!
User Manual

ALIGN Clause

– see page 302

MAYINIT Clause

– see page 302

ORG Clause

– see page 303

SPACE Clause

– see page 303

Synonym

.define

Syntax

<segment_definition> =>

DEFINE

<ident>[<space_clause>][align_clause>][<org_clause>][<mayinit_clause>]

Examples

DEFINE near_code ; Uses the defaults of the current

; space, byte alignment and relocatable.

DEFINE irq_table,ORG=%FFF8 ; Uses current space, byte alignment,

; and absolute starting address at

; memory location %FFF8.

ALIGN Clause

Allows you to select the alignment boundary for a segment. The linker places modules in
this segment on the defined boundary. The boundary, expressed in bytes, must be a power
of two (1, 2, 4, 8, and so on).

Syntax

<align_clause> => ,

ALIGN

= <int_const>

Example

DEFINE fdata,SPACE = EData,ALIGN = 2

; Aligns on 2-byte boundary, relocatable.

MAYINIT Clause

A MAYINIT clause explicitly allows data in the segment to be initialized by, for example,
DB directives. Only segments in ROM or EROM can be directly initialized by assembler,
and the MAYINIT clause is not necessary for segments in these spaces. The initialization
of segments in RDATA or EDATA requires coordination of the assembler, linker, and
start-up code. If you must initialize data in a segment in RDATA or EDATA, use the
MAYINIT clause to enable the initialization directives in that segment. See the note in the

Predefined Segments

section on page 279 on how to use start-up code to complete the ini-

tialization.