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
記号の値の前に配置されます。アセンブラ ファイルやリンカ スクリプトがデータ構造をレイアウトする際に、このような構造がよく見られます。