Everything

セクション・アドレス演算子(__sectop/__secend)


セクション・アドレス演算子です。

[機能]

-

__sectopで指定したセクション名の先頭アドレスを参照します。

-

__secendで指定したセクション名の末尾+1アドレスを参照します。

-

__sectop( ),および__secend( )の戻り型はvoid __far*とします。

-

__sectop,または__secendで取得した値と定数との加減算を記述してはいけません。

[方法]

__sectop("セクション名")
__secend("セクション名")

[使用例]

Cソースを以下に示します。

const struct {
        void __far *rom_s;
        void __far *rom_e;
} DTBL[]={__sectop("XXX"), __secend("XXX")};

 

アセンブリ・ソースにおける宣言は以下となります。

        .PUBLIC         _DTBL
        .SECTION        .const, CONST
        .ALIGN          2
_DTBL:
        .DB2    LOWW(STARTOF(XXX))                      ;rom_sの下位2バイト
        .DB     LOW(HIGHW(STARTOF(XXX)))                ;rom_sの上位1バイト
        .DB     0x00
        .DB2    LOWW(STARTOF(XXX)+SIZEOF(XXX))          ;rom_eの下位2バイト
        .DB     LOW(HIGHW(STARTOF(XXX)+SIZEOF(XXX)))    ;rom_eの上位1バイト
        .DB     0x00