我正在浏览 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 汇编器手册:特殊点符号:
特殊符号 '
.' 表示as正在组装的当前地址。因此,表达式melvin: .long .定义melvin为包含它自己的地址。将值分配给与指令.相同。.org因此,表达式.=.+4与说相同.space 4。
因此,在您的代码段中,当前地址放在__turn_mmu_on,__turn_mmu_on_end符号的值之前。您在汇编程序文件和链接器脚本中经常看到类似的结构,因为它们布置了它们的数据结构。