アセンブラにセクションの開始を指示します。
[指定形式]
| シンボル欄 | ニモニック欄 | オペランド欄 | コメント欄 | 
| [ラベル:] | .SECTION | セクション名, 再配置属性 [, ALIGN=絶対値式][,COMDAT=シグネチャ名] | [; コメント] | 
ALIGNはV1.10以降で記述可能です。
COMDATはV1.12以降で記述可能です。
[機能]
| 
- | .SECTION疑似命令は,アセンブラにセクション(コード,データの区別なし)の開始を指示します。 | 
[詳細説明]
| 
- | プログラム中のひとつのまとまった機能を持つプログラム,およびデータを.SECTION疑似命令により定義します。本疑似命令は,次にセクション定義疑似命令が記述されるまで有効です。
 | 
| 
- | ソース・プログラムの先頭でセクション定義疑似命令が出現する前に,ラベル,またはオブジェクト・コードを出力する命令が記述された場合は,デフォルト・セクションとしてリロケータブルなコード・セクションを生成します。この時のセクション名は”.text”,再配置属性は”TEXT”となります。
 | 
| 
- | .SECTION疑似命令は,オペランド欄の再配置属性にAT,DATA_AT,BSS_AT,BIT_ATを指定することにより,開始アドレスを指定することができます。また,.ORG疑似命令により開始アドレスを指定することもできます。このときのセクション名は,オペランドに指定されたセクション名+“_AT”+指定アドレス(ただし,prefix(0x,0X)およびsuffix(h,H)が付かない大文字の16進表記)となります。
 | 
| 
- | 次に,再配置属性を示します。下記以外の再配置属性が指定された場合はエラーとなります。
 | 
|  |  |  |  |  | 
| 
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 | 
| 
SDATA | 
SDATA | 
.sdata | 
初期値を持つデータ用のセクションをsaddr領域注2内で先頭が偶数番地になるように配置します。 | 
2 | 
| 
SBSS | 
SBSS | 
.sbss | 
初期値を持たないデータ用のセクションをsaddr領域注2内で先頭が偶数番地になるように配置します。注8 | 
2 | 
| 
SBSS_BIT | 
SBSS_BIT | 
.sbss_bit | 
初期値を持たないビット用のセクションをsaddr領域注2内で先頭が偶数番地になるように配置します。最適化リンカは本セクションをバイト単位で結合し,再配置属性をSBSSとして扱います。注8注9 | 
2 | 
| 
DATA | 
DATA | 
.data | 
初期値を持つデータ用のセクションをRAM領域注2内の0xF0000~0xFFFFF番地内に,先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。 | 
2 | 
| 
BSS | 
BSS | 
.bss | 
初期値を持たないデータ用のセクションをRAM領域注2内の0xF0000~0xFFFFF番地内に,先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。注8 | 
2 | 
| 
BSS_BIT | 
BSS_BIT | 
.bss_bit | 
初期値を持たないビット用のセクションをRAM領域注2内の0xF0000~0xFFFFF番地内に,先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。最適化リンカは本セクションをバイト単位で結合し,再配置属性をBSSとして扱います。注8注10 | 
2 | 
| 
DATAF | 
DATAF | 
.dataf | 
初期値を持つデータ用のセクションを先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。 | 
2 | 
| 
BSSF | 
BSSF | 
.bssf | 
初期値を持たないデータ用のセクションを先頭が偶数番地になるように,64KB - 1境界注3にまたがらないように配置します。 | 
2 | 
| 
AT△アドレス | 
AT 絶対式注5 | 
なし | 
セクションを指定番地に配置します。 | 
1(固定) | 
| 
DATA_AT△アドレス | 
DATA_AT 絶対式注5 | 
なし | 
初期値を持つデータ用のセクションを指定番地に配置します。 | 
1(固定) | 
| 
BSS_AT△アドレス | 
BSS_AT 絶対式注5 | 
なし | 
初期値を持たないデータ用のセクションを指定番地に配置します。注8 | 
1(固定) | 
| 
BIT_AT△アドレス | 
BIT_AT 絶対式注5 | 
なし | 
初期値を持たないビット用のセクションを指定番地に配置します。最適化リンカは本セクションをバイト単位で結合し,再配置属性をBSS_ATとして扱います。注8注11 | 
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の配置先アドレスについてはデバイスのユーザーズ・マニュアルを参照してください。 | 
| 
注 8. | 再配置属性SBSSとSBSS_BIT,再配置属性BSSとBSS_BIT,再配置属性BSS_ATとBIT_ATの同名セクションは,アセンブラ内部で連続した1つのセクションとして処理します。 | 
| 
注 9. | セクションを再配置属性SBSSとしてオブジェクト・ファイルに出力し,最適化リンカは再配置属性SBSSとして配置します。 | 
| 
注 10. | セクションを再配置属性BSSとしてオブジェクト・ファイルに出力し,最適化リンカは再配置属性BSSとして配置します。 | 
| 
注 11. | セクションを再配置属性BSS_ATとしてオブジェクト・ファイルに出力し,最適化リンカは再配置属性BSS_ATとして配置します。 | 
| 
- | ALIGNパラメータを指定すると,整列条件のデフォルト値を変更することができます。【V1.10.00以降】 | 
| 
- | ALIGNパラメータに指定した値より大きな値を .ALIGN 疑似命令に指定した場合,エラーになります。 | 
| 
- | alignパラメータに指定できる値は,1,2のいずれかです。 | 
| 
- | alignパラメータをコードセクションに指定した場合,エラーになります。 | 
| 
- | COMDATパラメータを指定すると,リンク時に同じシグネチャを持つ同名セクションの中から,1つのみを選択してリンクします。【V1.12.00以降】 | 
[使用例]
TEXT属性のセクション“.text”を定義
| .SECTION        .text , TEXT NOP | 
 
DATA属性のセクション“data”を定義
| .SECTION        data, DATA .DB2            0x1 | 
 
DATA_AT属性のセクション”EX”を0xf2000番地指定で定義
セクション名は“EX_ATF2000”となります。
| .SECTION        EX, DATA_AT     0xf2000 .DS             4 |