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 汇编器手册:特殊点符号

特殊符号 ' .' 表示as正在组装的当前地址。因此,表达式melvin: .long .定义melvin 为包含它自己的地址。将值分配给与指令.相同。.org因此,表达式.=.+4与说相同.space 4

因此,在您的代码段中,当前地址放在__turn_mmu_on,__turn_mmu_on_end符号的值之前。您在汇编程序文件和链接器脚本中经常看到类似的结构,因为它们布置了它们的数据结构。

于 2013-05-14T12:41:24.043 回答