2014-02-21 34 views
1

例如在entry.S中什么ENTRY语句的含义entry.S中的Linux内核i386的

ENTRY(ret_from_fork) 
    pushl %eax 
    call schedule_tail 
    GET_THREAD_INFO(%ebp) 
    popl %eax 
    jmp syscall_exit 

有啥入榜作为语言的语法? 我认为所有的指令都是以开头。并且ENTRY也看起来不像宏 任何人都可以告诉我关于ENTRY的是什么?如果它是在Linux源代码中定义的,任何人都可以指出位置,或者它是否是一种语法,因为有人可以告诉我在哪里可以找到这种用法的具体描述! 谢谢!

回答

4

不知道为什么你说它看起来不像一个宏,因为这正是宏如何看起来像。而事实上,这是在include/linux/linkage.h中定义的宏如下:

#ifndef ENTRY 
#define ENTRY(name) \ 
    .globl name ASM_NL \ 
    ALIGN ASM_NL \ 
    name: 
#endif 
+0

我认为它不是宏的原因是我认为在汇编中没有预处理,但是.S后缀告诉gcc使用预处理,然后编译不支持的程序集中的as – Adambynes

0

我认为这是一个汇编指令。 根据我的知识,当我们使用Keil汇编程序时,会使用ENTRY汇编程序指令。 这实际上是应用程序的入口点。

当我们使用GNU汇编程序时,我们在汇编代码中有_start或_main入口点。

相关问题