アセンブラ移行支援機能を有効にします。
[指定形式]
アセンブラ移行支援機能を有効にしません。
[詳細説明]
- | 次の表中の「CA78K0Rアセンブラ言語仕様」の記述を「RL78アセンブラ言語仕様」に読み替えてアセンブルします。 |
|
|
|
|
数値定数
|
n…nB (n=0, 1) (2進数)
|
同左
|
-base_number=suffixを指定してください。
|
n…n0 (n=0~7) (8進数)
|
同左
|
-base_number=suffixを指定してください。
|
n…nH (n=0~9, A~F, a~f) (16進数)
|
同左
|
-base_number=suffixを指定してください。
|
文字列
|
'文字...文字'
|
"文字...文字"
|
文字列中の2文字連続のシングルクオート('')を(\')に変えて,文字全体をダブルクォート(")で囲んでください。
例. 「DB 'abc''de'」→「.DB "abc\'de"」
|
オペランド欄
|
特殊機能レジスタ(SFR, 2ndSFR)
|
同左
|
-devを指定してください。
|
セグメント定義疑似命令
|
セグメントなし
|
.CSEG TEXT
|
|
CSEG 再配置属性なし
|
.CSEG TEXTF
|
|
CSEG CALLT0
|
.CSEG CALLT0
|
|
CSEG FIXED
|
.CSEG TEXT
|
|
CSEG BASE
|
.CSEG TEXT
|
|
CSEG AT
|
.CSEG AT
|
|
CSEG UNIT
|
.CSEG TEXTF
|
|
CSEG UNITP
|
.CSEG TEXTF
|
.ALIGN 2を追加してください。
|
CSEG IXRAM
|
.CSEG TEXTF
|
|
CSEG OPT_BYTE
|
.CSEG OPT_BYTE
|
|
CSEG SECUR_ID
|
.CSEG SECUR_ID
|
|
CSEG PAGE64KP
|
.CSEG TEXTF_UNIT64KP
|
|
CSEG UNIT64KP
|
.CSEG TEXTF_UNIT64KP
|
|
CSEG MIRRORP
|
.CSEG CONST
|
|
DSEG 再配置属性なし
|
.DSEG BSSF
|
|
DSEG SADDR
|
.DSEG SBSS
|
|
DSEG SADDRP
|
.DSEG SBSS
|
|
DSEG AT
|
.DSEG BSS_AT
|
|
DSEG UNIT
|
.DSEG BSS
|
|
DSEG UNITP
|
.DSEG BSS
|
|
DSEG IHRAM
|
.DSEG BSS
|
|
DSEG LRAM
|
.DSEG BSS
|
|
DSEG DSPRAM
|
.DSEG BSS
|
|
DSEG IXRAM
|
.DSEG BSS
|
|
DSEG BASEP
|
.DSEG BSS
|
|
DSEG PAGE64KP
|
.DSEG BSS
|
|
DSEG UNIT64KP
|
.DSEG BSS
|
|
BSEG 再配置属性なし
|
.BSEG SBSS_BIT
|
|
BSEG UNIT
|
.BSEG SBSS_BIT
|
|
BSEG AT
|
.BSEG BIT_AT
|
|
ORG
|
.ORG
|
|
シンボル定義疑似命令
|
EQU
|
.EQU
|
オペランドにはリロケータブルなラベルを記述できません。
|
SET
|
.SET
|
|
メモリ初期化,領域確保疑似命令
|
DB
|
.DB
|
サイズ指定は記述を変更してください。
|
DW
|
.DB2
|
サイズ指定は記述を変更してください。オペランドが文字列定数の場合は,文字列に変えてください。
例. 「DW 'ab'」→「.DB "ba"」
|
DG
|
.DB4
|
サイズ指定は記述を変更してください。オペランドが文字列定数の場合は,文字列に変えてください。
例. 「DG 'ab'」→「.DB "ba\0\0"」
|
DS
|
.DS
|
|
DBIT
|
.DBIT
|
|
リンケージ疑似命令
|
PUBLIC
|
.PUBLIC
|
|
EXTRN
|
.EXTERN
|
|
EXTBIT
|
.EXTBIT
|
|
オブジェクト・モジュール名宣言疑似命令
|
NAME
|
コメント扱い
|
|
分岐命令自動選択疑似命令
|
BR
|
BR !!addr20
|
|
CALL
|
CALL !!addr20
|
|
アセンブル終了疑似命令
|
END
|
コメント扱い
|
END以降の記述が有効になるので,無効にしてください。
|
アセンブル対象品種指定制御命令
|
$PROCESSOR($PC)
|
コメント扱い
|
-devを指定してください。
|
デバッグ情報出力制御命令
|
$DEBUG($DG)
|
コメント扱い
|
-debugを指定してください。
|
$NODEBUG($NODG)
|
コメント扱い
|
-debugを指定してください。
|
$DEBUGA
|
コメント扱い
|
-debugを指定してください。
|
$NODEBUGA
|
コメント扱い
|
-debugを指定してください。
|
クロスリファレンス・リスト出力指定制御命令
|
$XREF($XR)
|
コメント扱い
|
|
$NOXREF($NOXR)
|
コメント扱い
|
|
$SYMLIST
|
コメント扱い
|
|
$NOSYMLIST
|
コメント扱い
|
|
インクルード制御命令
|
$INCLUDE($IC)
|
$INCLUDE
|
|
アセンブル・リスト制御命令
|
$EJECT($EJ)
|
コメント扱い
|
|
$LIST($LI)
|
コメント扱い
|
|
$NOLIST($NOLI)
|
コメント扱い
|
|
$GEN
|
コメント扱い
|
|
$NOGEN
|
コメント扱い
|
|
$COND
|
コメント扱い
|
|
$NOCOND
|
コメント扱い
|
|
$TITLE($TT)
|
コメント扱い
|
|
$SUBTITLE($ST)
|
コメント扱い
|
|
$FORMFEED
|
コメント扱い
|
|
$NOFORMFEED
|
コメント扱い
|
|
$WIDTH
|
コメント扱い
|
|
$LENGTH
|
コメント扱い
|
|
$TAB
|
コメント扱い
|
|
条件付きアセンブル制御命令
|
$IF(スイッチ名)
|
同左
|
-define=スイッチ名=1,または,-define=スイッチ名=0を指定してください。
|
$IF(スイッチ名 : スイッチ名 ...)
|
$IF(スイッチ名 | スイッチ名 ...)
|
-define=スイッチ名=1,または,-define=スイッチ名=0を指定してください。
あるいは,
スイッチ名 .SET 1,または,スイッチ名 .SET 0を追加してください。
|
$_IF
|
$IF
|
|
$ELSEIF(スイッチ名 : スイッチ名 ...)
|
$ELSEIF(スイッチ名 | スイッチ名 ...)
|
-define=スイッチ名=1,または,-define=スイッチ名=0を指定してください。
あるいは,
スイッチ名 .SET 1,または,スイッチ名 .SET 0を追加してください。
|
$_ELSEIF
|
$ELSEIF
|
|
$SET
|
コメント扱い
|
|
$RESET
|
コメント扱い
|
|
漢字コード制御命令
|
$KANJICODE
|
コメント扱い
|
-character_setを指定してください。
|
RAM領域配置指定制御命令
|
$RAM_ALLOCATE
|
コメント扱い
|
対象セグメントを.CSEG TEXTF_UNIT64KPで配置してください。
|
その他の制御命令
|
$TOL_INF
|
コメント扱い
|
|
$DGS
|
コメント扱い
|
|
$DGL
|
コメント扱い
|
|
[注意]
- | 上記の表に記載していないCA78K0Rアセンブラの言語仕様については,ソースを修正する必要があります。 |
- | シンボル定義疑似命令EQU のオペランドには,リロケータブルなラベルを記述できません。
この場合,EQU の左辺にあるネームの参照個所をリロケータブルなラベルに置き換えて,EQU 自体は無効化してください。 |
DMAINP DSEG SADDRP
RABUF1: DS 8
RABUF2: DS 8
OFFSET EQU RABUF2 - RABUF1 ; E0551203:リロケータブル項は記述できません。
FPREAD EQU RABUF1.4 ; E0551203:リロケータブル項は記述できません。
CSEG
ADD A,#OFFSET
CLR1 FPREAD
END
|
(修正方法)
OFFSET EQU RABUF2 - RABUF1
FPREAD EQU RABUF1.4
|
を無効にして,
ADD A,#OFFSET
CLR1 FPREAD
|
を
ADD A,#RABUF2 - RABUF1
CLR1 RABUF1.4
|
に修正します。
- | アドレス幅が16ビットを超えると,リンク時にエラーとなります。
この場合,アドレスにLOWW演算子を付加してください。 |
DMAINP DSEG SADDRP
RABUF1: DS 8
CSEG
MOVW HL,#RABUF1 ; E0562330:Relocation size overflow
END
|
(修正方法)
を
に修正します。
- | メモリ初期化や領域確保疑似命令における「(サイズ)」オペランドの解釈が異なります。
以下の例に従って修正してください。 |
(修正方法)
CA78K0Rアセンブラの場合:3つのワード領域(6バイト)を00Hで初期化します。
RL78アセンブラの場合:1ワードの領域(2バイト)を3で初期化します。
- | RL78アセンブラで許していない演算を別の方法に置き換えてください。 |
MSGDATA CSEG AT 80H
TMSGOK:
DB 'OK'
CSEG
MOV H,#LOWW TMSGOK/100H ; E0551215:ラベルの記述に誤りがあります。
; E0550250:100Hの構成に誤りがあります。
END
|
(修正方法)
を
に修正します。
- | セグメント定義疑似命令 CSEG UNITP を .CSEG TEXTF + .ALIGN 2 に変えてください。 |
XMAIN2 CSEG UNITP
TINTVL: DW 47999
END
|
(修正方法)
を
XMAIN2 .CSEG TEXTF
.ALIGN 2
|
に修正します。
[使用例]
>asrl -convert_asm -cpu=S2 -dev=dr5f100pj.dvf main.asm
|