MAEC TOOL NEWS:
MAECT-M3T-NC308WA_2-020616D
M3T-NC308WA, M3T-NC30WA, M3T-NC79WA
AS308, AS30, AS79
ご使用上のお願い
|
Cコンパイラ(アセンブラ・統合化開発環境付き) M3T-NC308WA, M3T-NC30WAおよびM3T-NC79WAの使用上の注意事項を連絡します。
- マクロ指示命令 ".LOCAL" に関する注意事項
- マクロ指示命令 ".LOCAL" に関する注意事項
- 1.1 該当製品
- M32C/80, M16C/80, M16C/70シリーズ用Cコンパイラ :
- M3T-NC308WA V.1.00 Release 1 ~ V.3.10 Release 3
- M16C/60, M16C/30, M16C/20, M16C/10シリーズ用Cコンパイラ :
- M3T-NC30WA V.3.20 Release 1 ~ V.5.00 Release 1
- 79xxシリーズ用Cコンパイラ :
- M3T-NC79WA V.3.20 Release 1 ~ V.4.10 Release 1
- M32C/80, M16C/80, M16C/70シリーズ用リロケータブルアセンブラ :
- AS308 V.1.00 Release 1 ~ V.2.00 Release 1
- M16C/60, M16C/30, M16C/20, M16C/10用リロケータブルアセンブラ :
- AS30 V.1.00 Release 1 ~ V.3.20 Release 1
- 79xxシリーズ用リロケータブルアセンブラ :
- AS79 V.2.00 Release 1 ~ V.3.20 Release 1
- 1.2 内容
- マクロ定義内に、マクロ指示命令 ".LOCAL" と文字列データが記述されている場合、文字列データが正しく展開されない場合があります。
- 1.3 発生条件
- 以下3点の条件をすべて満たしている場合に発生します。
- (1) マクロ定義内にマクロ指示命令 ".LOCAL" にてマクロローカルラベルが宣言されている。
- (2) (1)のマクロ定義内に文字列データの記述がされている。
- (3) (2)で記述した文字列データの末尾が ".(ピリオド)" である。
- 1.4 発生例
[アセンブリ言語ソースファイル]
--------------------------------------------------------------------
mac .macro
.local btop, bend <--- 発生条件(1)
btop:
.byte bend - btop
.byte "string." <--- 発生条件(2)、(3)
bend:
.endm
.section prg,code
mac
.end
--------------------------------------------------------------------
[発生例のマクロ展開結果]
--------------------------------------------------------------------
.local btop, bend
..ml0001:
.byte ..ml0002 - ..ml0001
.byte "stringstring" <--- 誤った展開を実施
..ml0002:
.endm
--------------------------------------------------------------------
- 1.5 回避策
- 特種文字 "." とそれより前の文字列データを分割し、"." を即値にて定義してください。
[例]
--------------------------------------------------------------------
mac .macro
.local btop, bend
btop:
.byte bend - btop
.byte "string", 2EH <--- "." を即値で定義
bend:
.endm
--------------------------------------------------------------------
- 1.6 恒久対策
- 本内容は、次期バージョンアップの際に改修する予定です。