皇冠网址 首页 皇冠代理 皇冠账号 皇冠博彩 皇冠体育 皇冠现金 皇冠官网 皇冠网址 皇冠足球 皇冠分红

你的位置: 皇冠网址 > 皇冠分红 >

博彩赞助球队博彩公司英雄联盟(www.majesticsportsline.com)

发布日期:2026-10-04 17:40    点击次数:142
博彩赞助球队博彩公司英雄联盟(www.majesticsportsline.com)

 乐鱼炸金花

皇冠体育 api

众人都知说念函数调用是通过栈来达成的,况兼知说念在栈中存放着该函数的局部变量。然而关于栈的达成细节可能不一定明晰。本文将先容一下在Linux平台下函数栈是若何达成的。

博彩公司英雄联盟www.majesticsportsline.com 栈帧的结构

函数在调用的时辰都是在栈空间上开拓一段空间以供函数使用,是以,咱们先来了解一下通用栈帧的结构。

如图所示,栈是由高地址向地地址的标的滋长的,况兼栈有其栈顶和栈底,入栈出栈的地点就叫作念栈顶。

皇冠hg86a

在x86系统的CPU中,rsp是栈指针寄存器,这个寄存器中存储着栈顶的地址。rbp中存储着栈底的地址。函数栈空间主如若由这两个寄存器来礼服的。

当次第入手时,皇冠足球栈指针rsp不错移动,栈指针和帧指针rbp一次只可存储一个地址,是以,任何时辰,这一双指针指向的是兼并个函数的栈帧结构。

而帧指针rbp是不移动的,探询栈中的元素不错用-4(%rbp)能够8(%rbp)探询%rbp指针底下能够上头的元素。

在廓清了这些之后,底下咱们来看一个具体的例子: 

#include <stdio.h>  int sum (int a,int b)  {   int c = a + b;   return c;  }  int main()  {   int x = 5,y = 10,z = 0;   z = sum(x,y);   printf("%d\r\n",z);   return 0;  } 

反汇编如下,底下咱们就对照汇编代码一步一步分析下函数调用历程中栈的变化。 

火博体育官方入口
0000000000000000 <sum>:     0: 55                    push   %rbp      1: 48 89 e5              mov    %rsp,%rbp     4: 89 7d ec              mov    


----------------------------------
栏目分类
相关资讯