Everything

-convert_asm


アセンブラ移行支援機能を有効にします。

[指定形式]

-convert_asm

 

-

省略時解釈

アセンブラ移行支援機能を有効にしません。

[詳細説明]

-

次の表中の「CA78K0Rアセンブラ言語仕様」の記述を「RL78アセンブラ言語仕様」に読み替えてアセンブルします。

表 2.7

アセンブラ移行支援機能

種別

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 自体は無効化してください。

例 1.

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演算子を付加してください。

例 2.

DMAINP  DSEG   SADDRP
RABUF1: DS     8
        CSEG
        MOVW   HL,#RABUF1  ; E0562330:Relocation size overflow
        END

 

(修正方法)

        MOVW   HL,#RABUF1

        MOVW   HL,#LOWW RABUF1

に修正します。

-

メモリ初期化や領域確保疑似命令における「(サイズ)」オペランドの解釈が異なります。
以下の例に従って修正してください。

例 3.

        CSEG
        DW     (3)
        END

 

(修正方法)

        .CSEG
        .DS     6
        .END

CA78K0Rアセンブラの場合:3つのワード領域(6バイト)を00Hで初期化します。

RL78アセンブラの場合:1ワードの領域(2バイト)を3で初期化します。

-

RL78アセンブラで許していない演算を別の方法に置き換えてください。

例 4.

MSGDATA CSEG   AT 80H
TMSGOK:
        DB     'OK'
        CSEG
        MOV    H,#LOWW TMSGOK/100H   ; E0551215:ラベルの記述に誤りがあります。
                                     ; E0550250:100Hの構成に誤りがあります。
        END

 

(修正方法)

        MOV    H,#LOWW TMSGOK/100H

        MOV    H,#HIGH TMSGOK

に修正します。

-

セグメント定義疑似命令 CSEG UNITP を .CSEG TEXTF + .ALIGN 2 に変えてください。

例 5.

XMAIN2  CSEG   UNITP
TINTVL: DW     47999
        END

 

(修正方法)

XMAIN2  CSEG   UNITP

XMAIN2  .CSEG   TEXTF
        .ALIGN  2

に修正します。

[使用例]

-

アセンブラ移行支援機能を有効にします。

>asrl -convert_asm -cpu=S2 -dev=dr5f100pj.dvf main.asm