アセンブラにコード・セクションの開始を指示します。
[指定形式]
シンボル欄
|
ニモニック欄
|
オペランド欄
|
コメント欄
|
[セクション名]
|
.CSEG
|
[再配置属性]
|
[; コメント]
|
[機能]
- | .CSEG疑似命令は,アセンブラにコード・セクションの開始を指示します。 |
- | .CSEG疑似命令以降に記述した命令は,再びセクション定義疑似命令が現れるまでコード・セクションに属します。 |
[詳細説明]
- | プログラム中で,ひとつのまとまった機能を持つ部分を.CSEG疑似命令により定義します。
本疑似命令は,次にセクション定義疑似命令が記述されるまで有効です。 |
- | ソース・プログラムの先頭でセクション定義疑似命令が出現する前に,ラベル,またはオブジェクト・コードを出力する命令が記述された場合は,デフォルト・セクションとしてリロケータブルなコード・セクションを生成します。
この時のセクション名は“.text”,再配置属性は“TEXT”となります。 |
- | .CSEG疑似命令は,オペランド欄にATを指定することにより開始アドレスを指定することができます。
また,.ORG疑似命令により開始アドレスを指定することもできます。
このときのセクション名は,指定されたセクション名+“_AT”+指定アドレス(ただし,prefix(0x,0X)およびsuffix(h,H)が付かない大文字の16進表記)となります。 |
- | 次に,.CSEGの指定可能な再配置属性を示します。 |
|
|
|
|
|
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”となります。 |
[使用例]
TEXT属性のセクション“.text”を定義
TEXTF_UNIT64KP属性のセクション“unit”を定義
unit .CSEG TEXTF_UNIT64KP
MOV A, !LABEL
|
AT属性のセクション“EX”を0x00200番地指定で定義
セクション名は“EX_AT200”となります。
EX .CSEG AT 0x00200
.DS 2
|
オプションバイト用のセクションを定義