Compatibility issues, Troubleshooting the assembler, Compatibility issues troubleshooting the assembler – Zilog EZ80F916 User Manual
Page 249

UM014423-0607
ZiLOG Developer Studio II
eZ80Acclaim!
®
User Manual
229
COMPATIBILITY ISSUES
Compatibility between eZ80Acclaim! assembler directives and those of other assemblers
supported by the eZ80Acclaim! assembler are listed in “Asssembler Compatibility Issues”
on page 416. If you are developing new code for the eZ80Acclaim!, it is recommended
that you use the eZ80Acclaim! directives described previously in this chapter because the
behavior of these directives is thoroughly validated with each release of the eZ80Acclaim!
assembler.
TROUBLESHOOTING THE ASSEMBLER
There are several instructions that you must be careful about when you use them. For
example, you can run into problems with instructions that have implicit registers (such as
DJNZ
,
LDI
,
LDIR
,
LDD
,
LDDR
, and
CPI CPIR
).
Arithmetic instructions on register pairs (like
DEC BC
) do not set the condition codes;
however, single-register instructions (like
DEC B
or
DEC
C) do set the condition codes.
Be careful with handling register pairs in ADL mode because the highest-order byte is not
directly accessible.
<float_power>
=>
digit(digit|'_')
@
<exp_part>
<label>
=>
<ident>
<string_const>
=>
"('\"'|any)
@
"
<ident>
=>
(letter|'_')(letter|'_'|digit|'.')
@
<ident_list>
=>
<ident>(,<ident>)
@
<macro_def>
=>
<ident>
MACRO
[<arg>(<arg>)]
<code_body>
ENDMAC
[RO]<macname>
<macro_invoc>
=>
<macname>[<arg>](,<arg>)]
<arg>
=>
macro argument
<public_definition>
=>
PUBLIC
<ident list>
EXTERN
<ident list>
<scalar_definition>
=>
<type>[<value>]
<segment_definition>
=
DEFINE
<ident>[<space_clause>][<align_clause>]
[<org_clause>]
<space_clause>
=>
,SPACE=
<space>
<align_clause>
=>
,ALIGN=
<int_const>
<org_clause>
=>
,ORG=
<int_const>
<space>
=>
(
RDATA|XDATA|ROM
)