Assembly 目的';低于$0x8%rsp';虽然没有要存储的局部变量
这是我教科书中的一段代码的反汇编Assembly 目的';低于$0x8%rsp';虽然没有要存储的局部变量,assembly,x86-64,calling-convention,Assembly,X86 64,Calling Convention,这是我教科书中的一段代码的反汇编 sub $0x8, %rsp mov $0x0, %eax callq 4006cf <echo> add $0x8, $rsp echo()函数只需通过get()获取一个输入,然后通过put()将其打印出来。我不明白的是第一个命令sub$0x8,%rsp的用途。call\u echo()函数中没有任何本地变量可存储,那么为什么编译器决定在堆栈中释放8字节的空间?查看未优化的代码没有那么大用处。 void call_echo()
sub $0x8, %rsp
mov $0x0, %eax
callq 4006cf <echo>
add $0x8, $rsp
echo()
函数只需通过get()
获取一个输入,然后通过put()
将其打印出来。我不明白的是第一个命令sub$0x8,%rsp
的用途。call\u echo()
函数中没有任何本地变量可存储,那么为什么编译器决定在堆栈中释放8字节的空间?查看未优化的代码没有那么大用处。
void call_echo() {
echo();
}