为什么所有转换为汇编程序的C函数都以相同的操作开始和结束?

时间:2018-05-01 20:22:36

标签: c assembly

当我将一个简单的C代码编译成汇编程序(gcc下的x86-64,但没关系)时,对应于C函数的标签都具有相同的结构:

void foo() {

}

编译成:

foo:
        push    rbp
        mov     rbp, rsp
        nop
        pop     rbp
        ret

为什么呢?这个功能什么都不做。我以为我明白这些汇编指令是“堆栈指针”。但我仍然没有掌握它们在程序中的用途。你能解释一下吗?

0 个答案:

没有答案