我正在通过arch / arm / head.S找到下面的代码
__turn_mmu_on_loc:
.long .
.long __turn_mmu_on
.long __turn_mmu_on_end
我无法理解“.long。”?
见GNU Assembler Manual: The Special Dot Symbol:
特殊符号'
.
'指的是as
汇编的当前地址。因此,表达式melvin: .long .
定义melvin
包含其自己的地址。将值分配给.
与.org
指令的处理方式相同。因此,表达式.=.+4
与.space 4
相同。
因此,在您的代码段中,当前地址位于__turn_mmu_on
,__turn_mmu_on_end
符号的值之前。您可以在汇编程序文件和链接描述文件中看到这些构造类似于它们的数据结构。