当前位置: 首页 > news >正文

企业网站系统建设高端品牌全屋定制

企业网站系统建设,高端品牌全屋定制,北京建工招标平台,vi手册模板60页bp与sp(压栈和弹栈) 在计算机内部的寄存器组中,有一对寄存器非常有意思:%ebp,%esp 文章目录 bp与sp(压栈和弹栈)寄存器组示例图%ebp与%esp总结 寄存器组示例图 首先我们应该对于计算机中的寄存…

bp与sp(压栈和弹栈)

在计算机内部的寄存器组中,有一对寄存器非常有意思:%ebp,%esp


文章目录

  • bp与sp(压栈和弹栈)
  • 寄存器组示例图
  • %ebp与%esp
  • 总结


寄存器组示例图

首先我们应该对于计算机中的寄存器组有一个逻辑的认知:
以X86_64为例对其中的通用寄存器组做出了逻辑图示如下链接:
X86_64寄存器组图示


%ebp与%esp

这个寄存器叫做堆栈基址寄存器,被调用者保存,而其保存的内容则是调用者的栈底。

比如下方的一段代码

#include<stdio.h>void A(int n){printf("n=%d\n",&n);
}void B(){int a=1;A(a);
}int main()
{B();
}

对于上述代码执行时的栈:
首先忽略系统区,main函数在栈底,然后在main函数中把B函数入栈,由于B中调用了A,在B之后又将A入栈。其中%ebx,就始终指向一个函数的栈区的底部。而%esp则始终指向函数栈区的顶部,这里简称为栈顶。

指令效果描述
pushq SR[%rsp]<-R[%rsp]-8
M[R[%rsp]]<-S
将四字压入栈
popq DD<-M[R[%rsp]]
R[%rsp]<-R[%rsp]+8
将四字弹出栈

总结

总之这块很简单,只需记住
压栈先挪出空间(sp减去某个值),再填数据
弹栈先保存要弹出的数据,再释放空间(sp加上某个值)
值得注意的是,弹栈后原数据还在,只是不再被栈顶指针所指,而是等待着下一次数据的覆盖

http://www.yayakq.cn/news/171504/

相关文章:

  • 网站开发 asp.net 还要学什么网站内容怎么写
  • 网站做留言板网站上传
  • 南阳网站营销外包公司做高端生活方式的网站
  • 专业的大良网站设计wordpress上传flash
  • 月付商城网站建站wordpress 文章位置
  • 姜堰住房和城乡建设厅网站首页网站建设制作设计公司佛山
  • 网站续费公司店标logo图片免费制作
  • 济南制作网站的公司新品发布会一般在哪里举行
  • 质控中心网站建设申请h5页面怎么制作免费
  • 石家庄网站排名推广外贸管理网站模板
  • 网站建设 智能建站做网站有哪些
  • 做网站给源码吗平台网站建设合同
  • 做移动端网站软件飞沐视觉北京网站建设公司
  • 免费建造网站重庆分类健康管理
  • 义乌建设银行交罚款网站什么样的网站需要改版
  • 深圳做小程序网站开发网络广告的类型有哪些
  • 唐山建设网站的网站电子商务网站开发教程论文
  • 杭州搭建网站wordpress 媒体库位置
  • 网站页面设计需要遵循的六大原则网址注册在哪里注册
  • 天津西青区有哪些大学海淀区seo多少钱
  • 建筑行业资讯网站免费网站推广网址
  • 有什么可以做兼职的网站网站网络广告如何建设
  • 中国外贸网站排名wordpress标签3d
  • 图片模板网站做算法的网站
  • 网站改手机版企业建站系统插件介绍
  • 山东网站建设维护wordpress搜索框制作教程
  • 山西智能建站系统价格盘州电子商务网站建设
  • 网站开发技能有哪些落地页制作
  • 设计师应该看的网站绵阳网站建设报价
  • 河南省建设银行网站年报黄浦区网站建设公司