COMMON

COMMON ディレクティブは、定義されたサイズのメモリブロックを、指定したシンボルで割り当てます。メモリのアライン方法を指定します。アラインメントを省略した場合、デフォルトのアラインメントは 4 になります。また、サイズを省略した場合、デフォルトのサイズは 0 になります。

このメモリには他のメモリと同様にアクセスできますが、オブジェクトファイルに領域は割り当てられません。

Show/hide構文

COMMON symbol{,size{,alignment}} {[attr]}

各パラメータには以下の意味があります。

symbol

シンボル名を指定します。シンボル名では大文字と小文字が区別されます。

size

予約するバイト数を指定します。

alignment

アラインメントを指定します。

attr

次のいずれかを指定できます。

DYNAMIC

ELF シンボルの可視性を STV_DEFAULT に設定します。

PROTECTED

ELF シンボルの可視性を STV_PROTECTED に設定します。

HIDDEN

ELF シンボルの可視性を STV_HIDDEN に設定します。

INTERNAL

ELF シンボルの可視性を STV_INTERNAL に設定します。

Show/hide使用法

リンカは、リンク段階で、必要な領域をゼロで初期化されたメモリとして割り当てます。COMMON ディレクティブで作成されたシンボルを定義、インポート(IMPORT)、またはエクスターン(EXTERN)することはできません。同様に、定義済みのシンボルや IMPORT または EXTERN ディレクティブで使用されたシンボルを COMMON ディレクティブで使用することはできません。

Show/hide

    LDR       r0, =xyz
    COMMON    xyz,255,4   ; ZI ストアの 255 バイトを定義し、ワード境界で整列させる

Show/hide誤用例

    COMMON    foo,4,4
    COMMON    bar,4,4
foo DCD       0           ; COMMON と同じ名前を持つラベルは定義できない
    IMPORT    bar         ; COMMON と同じ名前を持つラベルはインポートできない
Copyright © 2010-2011 ARM. All rights reserved.ARM DUI 0489FJ
Non-ConfidentialID111211