Everything

-stuff 【V1.10以降】


変数をアライメント数に応じたセクションに分けて配置します。

[指定形式]

-stuff[=<変数種別>[,...]]
<変数種別> : { bss | data | const }

 

-

省略時解釈

セクションを分けずに変数を配置します。

[詳細説明]

-

stuffオプションを指定した場合,指定した<変数種別>に属する変数をアライメント数に応じたセクションに分けて配置します。

-

bss指定は初期値なし変数を,data指定は初期値あり変数を,const指定はconst変数を対象とします。

-

<変数種別>を省略した場合は,全ての種別の変数が対象となります。

-

本オプションを複数回指定した場合,指定した全ての種別の変数が対象となります。

-

同じ変数種別を複数回指定した場合,1回指定した場合と同じ意味になります。このとき,警告を出力しません。

-

<変数種別>にbss, data, const以外を指定した場合はエラーとします。

-

変数の出力先はセクション名に "_<アライメント数>" を付加したセクションとなります。
ただし,アライメント数が2の場合は,"_2"は付加されません。

例)

変数のアライメント数が2:.bss

変数のアライメント数が1:.bss_1

[使用例]

// near領域
const char  __near c_n = 1;
const short __near s_n = 2;
const long  __near l_n = 3;
// far領域
const char  __far c_f = 1;
const short __far s_f = 2;
const long  __far l_f = 3;

デフォルト

-stuff指定

       .SECTION .const,CONST
_c_n:
       .DB 0x01
       .ALIGN 2
_s_n:
       .DB2 0x0002
       .ALIGN 2
_l_n:
       .DB4 0x00000003
       .SECTION .constf,CONSTF
_c_f:
       .DB 0x01
       .ALIGN 2
_s_f:
       .DB2 0x0002
       .ALIGN 2
_l_f:
       .DB4 0x00000003
       .SECTION .const_1,CONST,align=1
_c_n:
       .DB 0x01
 
       .SECTION .const,CONST
       .ALIGN 2
_s_n:
       .DB2 0x0002
       .ALIGN 2
_l_n:
       .DB4 0x00000003
 
       .SECTION .constf_1,CONSTF,align=1
_c_f:
       .DB 0x01
 
       .SECTION .constf,CONSTF
       .ALIGN 2
_s_f:
       .DB2 0x0002
       .ALIGN 2
_l_f:
       .DB4 0x00000003

[備考]

-

各セクション名は,次のオプションまたは#pragma sectionでの指定を反映します。

-memory_model, -far_rom