arch/arm/head.S を調べていて、以下のコードを見つけました
__turn_mmu_on_loc:
.long .
.long __turn_mmu_on
.long __turn_mmu_on_end
「.long .」が理解できない?
arch/arm/head.S を調べていて、以下のコードを見つけました
__turn_mmu_on_loc:
.long .
.long __turn_mmu_on
.long __turn_mmu_on_end
「.long .」が理解できない?
GNU アセンブラー マニュアルを参照してください: The Special Dot Symbol :
特殊記号 ' ' は、アセンブル
.先の現在のアドレスを示します。asしたがって、式は 独自のアドレスを含むようにmelvin: .long .定義します。melvinに値を代入すると、ディレクティブ.と同じように扱われます。.orgしたがって、この表現.=.+4は、と言っているのと同じ.space 4です。
したがって、スニペットでは、現在のアドレスが__turn_mmu_on,__turn_mmu_on_end記号の値の前に配置されます。アセンブラ ファイルやリンカ スクリプトがデータ構造をレイアウトする際に、このような構造がよく見られます。