请教64位汇编的问题
我的C语言是这样的:
int main()
{
long buf[1];
}
然后我gcc -S buf1.c,看到的汇编代码:
.cfi_startproc
pushq %rbp
.cfi_def_cfa_offset 16
.cfi_offset 6,-16
movq %rsp,%rbp
.cfi_def_cfa_register 6
我记得32位都是类似这样的(asm汇编):
push ebp
mov ebp,esp
sub esp,XXX ;这样的XXX是局部变量占用的大小
可是64位的,pushq %rbp是不是相当于push ebp,
但这里的pushq %rbp是不是压栈64位的(8个字节)?
另外:我在C中申请的局部变量,也没有看到类似
sub esp,XXX这样的代码,难道64位汇编有不同吗?
另:请问类似于.cfi_这样的是表示什么意思?