寄存器和栈的关系

前言
  • 首先我们要知道,寄存器是距离CPU最近,存取速度很快的存储单元。而栈是内存里属于某个程序的一段连续空间
  • 程序内存包含 【对于这些程序内存是如何分配以及寻址的请看其他博客】
    • 程序的可执行机器代码
    • 操作系统需要的一些信息
    • 用来管理过程调用和返回的运行时栈
    • 用户分配的内存块
  • 寄存器作用——可以存储地址或整数数据【程序计数器】, 用来记录某些重要的程序状态【条件码寄存器】,其他用来保存临时数据,过程参数和局部变量,以及函数的返回值
    在这里插入图片描述
  • 在这里需要说明一下,这是x86-64中央处理单元的一组16个存储64位值的通用目的寄存器
  • 8086时代,是%ax到%bp
  • IA32架构 扩展成32位 %eax到%ebp
  • 扩展成x86-64后,原来的8个寄存器扩展成64位,标号%rax到%rbp,此外还增加8个新的寄存器
  • 当x86-64过程所需要的存储空间超出寄存器能够存放的大小时,就会在栈上分配空间,这个部分称为过程的栈帧(stack frame)
函数调用
  • 调用函数有以下几个特性
  • p
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值