2

arch/arm/head.S を調べていて、以下のコードを見つけました

__turn_mmu_on_loc:

    .long   .
    .long   __turn_mmu_on
    .long   __turn_mmu_on_end

「.long .」が理解できない?

4

1 に答える 1

1

GNU アセンブラー マニュアルを参照してください: The Special Dot Symbol :

特殊記号 ' ' は、アセンブル.先の現在のアドレスを示します。asしたがって、式は 独自のアドレスを含むようにmelvin: .long .定義します。melvinに値を代入すると、ディレクティブ.と同じように扱われます。.orgしたがって、この表現.=.+4は、と言っているのと同じ.space 4です。

したがって、スニペットでは、現在のアドレスが__turn_mmu_on,__turn_mmu_on_end記号の値の前に配置されます。アセンブラ ファイルやリンカ スクリプトがデータ構造をレイアウトする際に、このような構造がよく見られます。

于 2013-05-14T12:41:24.043 に答える