3
为什么我们仍然向后增加堆栈?
编译C代码并查看汇编时,所有的堆栈都像这样向后生长: _main: pushq %rbp movl $5, -4(%rbp) popq %rbp ret -4(%rbp)-这是否意味着基本指针或堆栈指针实际上是向下移动内存地址而不是向上移动?这是为什么? 我换$5, -4(%rbp)到$5, +4(%rbp),编译和运行代码并没有任何错误。那么,为什么我们还必须在内存堆栈上倒退呢?
C是用于操作系统,游戏和其他高性能工作的通用计算机编程语言。