 |
|
 |
RENESAS TOOL NEWS [RSO-M3T-NC308WA_2-030501D]
A Note on Using C Compilers and Assemblers M3T-NC308WA, M3T-NC30WA, AS308, and AS30
|
Please take note of the following problem in using the M3T-NC308WA and M3T-NC30WA C compilers (with an assembler and integrated development environment), as well as the AS308 and AS30 assemblers:
- On the "MOVA" and "PUSHA" mnemonic instructions
- Products and Versions Concerned
C compilers:
- M3T-NC308WA V.5.00 Release 1--V.5.10 Release 1
- for the M32C/80 and M16C/80 series MCUs
- M3T-NC30WA V.5.00 Release 1--V.5.10 Release 1
- for the M16C/60, M16C/30, M16C/20, and M16C/10 series MCUs
Relocatable assemblers:
- AS308 V.3.20 Release 1--V.3.30 Release 1
- for the M32C/80 and M16C/80 series MCUs
- AS30 V.4.10 Release 1--V.4.20 Release 1
- for the M16C/60, M16C/30, M16C/20, and M16C/10 series MCUs
- Description
When a displacement value of zero is written to the operand (src) of a "MOVA" or "PUSHA" mnemonic instruction in address-register-relative addressing mode, either of the following error messages will appear at assembling, according to your assembler.
"Invalid operand(s) exist in instruction" in the AS308
"Operand type is not appropriate" in the AS30
- Examples
---------------------------------------------------------------
In the M32C/80 and M16C/80 series MCUs:
mova 0[A0],R2R0
pusha 0[A1]
In the M16C/60, M16C/30, M16C/20, and M16C/10 MCUs:
mova 0[A0],R0
pusha 0[A1]
--------------------------------------------------------------
- Workaround
If the value of displacement is zero, add ":8" immediately after the value.
Modified Examples:
--------------------------------------------------------------
In the M32C/80 and M16C/80 MCUs:
mova 0:8[A0],R2R0
pusha 0:8[A1]
In the M16C/60, M16C/30, M16C/20, and M16C/10 MCUs:
mova 0:8[A0],R0
pusha 0:8[A1]
--------------------------------------------------------------
- Schedule of Fixing the Problem
We plan to fix this problem in our next release of the products.
|
 |