过程,包含三个部分:传递数据,传递控制,分配和释放内存。
过程P调用过程Q,首先把B过程的代码启始地址放入程序计数器里,执行B的指令,执行完把B的下一条指令放入程序计数器。
栈帧:当X86-64的过程需要的存储空间超过寄存器存放的大小时,会在栈上分配空间,这个空间称为栈帧。
如下图的函数调用时,栈帧的结构
P调用Q时,会把P的下一条地址即Q的返回地址压入p的栈帧,大多数栈帧都是定长的,P传递的数据会被放在寄存器里,最多6个整数值,参数再多,P只能在自己的栈帧里存储,然后通过,这6个数值进行间接访问,
原文地址:https://www.cnblogs.com/fengtuoAnddongyumeng/p/8810902.html
时间: 2024-10-10 18:24:10