Everything

.CSEG


アセンブラにコード・セクションの開始を指示します。

[指定形式]

シンボル欄
ニモニック欄
オペランド欄
コメント欄
[セクション名]
.CSEG
[再配置属性]
[; コメント]

[機能]

-

.CSEG疑似命令は,アセンブラにコード・セクションの開始を指示します。

-

.CSEG疑似命令以降に記述した命令は,再びセクション定義疑似命令が現れるまでコード・セクションに属します。

[詳細説明]

-

プログラム中で,ひとつのまとまった機能を持つ部分を.CSEG疑似命令により定義します。
本疑似命令は,次にセクション定義疑似命令が記述されるまで有効です。

-

ソース・プログラムの先頭でセクション定義疑似命令が出現する前に,ラベル,またはオブジェクト・コードを出力する命令が記述された場合は,デフォルト・セクションとしてリロケータブルなコード・セクションを生成します。
この時のセクション名は“.text”,再配置属性は“TEXT”となります。

-

.CSEG疑似命令は,オペランド欄にATを指定することにより開始アドレスを指定することができます。
また,.ORG疑似命令により開始アドレスを指定することもできます。
このときのセクション名は,指定されたセクション名+“_AT”+指定アドレス(ただし,prefix(0x,0X)およびsuffix(h,H)が付かない大文字の16進表記)となります。

-

次に,.CSEGの指定可能な再配置属性を示します。

表 5.16

.CSEGの再配置属性

再配置属性

記述形式

デフォルトのセクション名

説明

整列条件のデフォルト値注1

CALLT0

CALLT0

.callt0

セクションをコード・フラッシュ領域注2内の0x00080~0x000BF番地内で先頭が偶数番地になるように配置します。

2

TEXT

TEXT

.text

セクションをコード・フラッシュ領域注2内の0x000C0~0x0FFFF番地内に配置します。

1

TEXTF

TEXTF

.textf

セクションをコード・フラッシュ領域注2内の0x000C0~0xEFFFF番地内に配置します。

1

TEXTF_UNIT64KP

TEXTF_UNIT64KP

.textf_unit64kp

セクションを先頭が偶数番地になるように,64KB-1境界注3にまたがらないように配置します。

2注4

CONST

CONST

.const

セクションをミラー元領域注2に,先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。

2

CONSTF

CONSTF

.constf

セクションをコード・フラッシュ領域注2内で先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。

2

AT△アドレス

AT 絶対式注5

なし

セクションを指定番地に配置します。

1(固定)

OPT_BYTE

OPT_BYTE

.option_byte注6

ユーザ・オプション・バイト,およびオンチップ・デバッグ指定専用の属性注7です。

1(固定)

SECUR_ID

SECUR_ID

.security_id注6

セキュリティID指定専用の属性注7です。

機械語命令は記述できません。

1(固定)

FLASH_SECUR_ID

FLASH_SECUR_ID

.flash_security_id注6

フラッシュ・プログラマ・セキュリティID指定専用の属性注7です。

機械語命令は記述できません。

1(固定)

注 1.

整列条件は.ALIGN疑似命令にて変更することができます。

注 2.

コード・フラッシュ領域,ミラー領域,RAM領域,saddr領域についてはデバイスのユーザーズ・マニュアルを参照してください。ただし,RAM領域については,アドレス範囲が0xF0000~0xFFFFFである内部RAMのみサポートします。

注 3.

配置の境界制限について,デフォルトの設定を64KB - 1境界とします。

注 4.

16ビット・データへのアクセスを保証するため,整列条件を「2」とします。

注 5.

絶対式として不正な記述をした場合,または0x00000~0xFFFFFの範囲を越える場合はエラーとなります。

注 6.

特別なセクションのため,セクション名の変更を禁止とし,セクション名固定とします。

注 7.

オプション・バイト,およびオンチップ・デバッグ,セキュリティIDの配置先アドレスについてはデバイスのユーザーズ・マニュアルを参照してください。

 

-

セクション名の指定がないセクション定義には,アセンブラが再配置属性ごとにデフォルトのセクション名を与えます。
次に,付与されるセクション名を示します。

再配置属性

セクション名

CALLT0

.callt

TEXT

.text

TEXTF

.textf

TEXTF_UNIT64KP

.textf_unit64kp

CONST

.const

CONSTF

.constf

AT△アドレス

.text_AT 開始アドレス

OPT_BYTE

.option_byte

SECUR_ID

.security_id

FLASH_SECUR_ID

.flash_security_id

特別なセクションのため,セクション名の変更を禁止とし,セクション名固定とします。

 

上記のセクション名は上記の再配置属性を持つものとし,別の再配置属性を指定することはできません。

 

-

再配置属性の指定がないセクション定義は,再配置属性“TEXT”となります。

-

セクション名に指定可能な文字は下記です。

-

英数字(0~9, a~z,A~Z)

-

英字相当文字(@, _,.)

[使用例]

TEXT属性のセクション“.text”を定義

.text   .CSEG   TEXT
        NOP

 

TEXTF_UNIT64KP属性のセクション“unit”を定義

unit    .CSEG   TEXTF_UNIT64KP
        MOV     A, !LABEL

 

AT属性のセクション“EX”を0x00200番地指定で定義

セクション名は“EX_AT200”となります。

EX      .CSEG   AT 0x00200
        .DS     2

 

オプションバイト用のセクションを定義

.CSEG   OPT_BYTE
.DB     0xFF