2014-02-21 35 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入口點。

相關問題