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

浙江省建设部网站好的搜索引擎推荐

浙江省建设部网站,好的搜索引擎推荐,网上做彩票的网站是真的么,短链接函数执行中的栈和寄存器调用 函数执行过程中主要用到的寄存器有程序计数器和栈指针。 程序计数器(IP):指向下一条执行指令的地址,其值用%rip来表示 栈指针:指向栈顶地址,其值用%rsp来表示 当过程P调用过…

函数执行中的栈和寄存器调用

函数执行过程中主要用到的寄存器有程序计数器和栈指针。

程序计数器(IP):指向下一条执行指令的地址,其值用%rip来表示

栈指针:指向栈顶地址,其值用%rsp来表示

当过程P调用过程Q时,其栈帧结构可能如下图所示:

在这里插入图片描述

地址转移

注意:当过程P调用过程Q时,会将返回地址压入栈中,从而确定当执行完Q后在哪个地址继续运行,而这个返回地址是P的栈帧的一部分。在x86-64中,用指令call Q来记录。这个指令会把返回地址压入栈中,并将程序计数器设为过程Q的起始地址。而在x86-64中,指令ret会从栈中弹出返回地址,并把程序计数器的值设为该返回地址。

在这里插入图片描述

数据传输

过程P最多可以通过寄存器向Q传递6个整数值,如果过程的参数小于等于6个,那么所有参数都可以通过寄存器来传递,而如果大于6个则需要额外分配栈帧来保存参数。如上图,参数数量n>6,则P分配的栈帧需要容纳7到n号参数,即为P的参数构造区。对于函数:

在这里插入图片描述

其栈帧结构为:

在这里插入图片描述

对于过程P,其对多个参数过程Q的栈帧调用过程可以总结为:

  1. 移动栈顶指针,为变量分配内存(遵循内存对齐原则)
  2. 对于前六个参数,设置其对应寄存器的值
  3. 对于其他参数,将其表示为栈顶指针+偏移量

对于不同位置和大小的参数,其和寄存器的对应关系为:

在这里插入图片描述

寄存器的局部存储空间

由于寄存器组是唯一被所有过程共享的资源,因此需要确保在过程之间进行调用时不会出现寄存器覆盖情况。为此x86-64采用了一组同一的寄存器使用惯例。

被调用者保存寄存器:过程P调用过程Q时,Q必须保存这些寄存器的值,保证它们的值在Q返回到P时与Q被调用时是一样的。(将其保存到Q的栈帧上)

调用者保存寄存器:除了被调用者保存寄存器和栈指针以外所有其他的寄存器,这意味着任何函数都能修改它们。

参考文献

《深入理解计算机系统(第三版)》

http://www.dtcms.com/wzjs/219553.html

相关文章:

  • 什么是网站建设中的专用主机如何在网上推广产品
  • 天涯武汉论坛武汉外包seo公司
  • 河南省建设监理协会网站证书查询临沂百度代理公司有几个
  • 联享品牌网站建设网络优化培训
  • 番禺网站建设制作网站建设黄页在线免费
  • 用什么网站做cpa武汉seo首页优化技巧
  • 杭州大江东建设局网站爱站关键词
  • 莱州教体局网站软文广告经典案例
  • 帮助赌博网站做优化百度扫一扫识别图片
  • 图片素材网站排行榜整合营销策略
  • 上海网站建设做物流一企业培训考试app
  • 日本做a爱片视频网站全国疫情实时资讯
  • 好用的外贸网站百度电商推广
  • 网站定制公司地址关键词优化的最佳方法
  • 网站建设与网页设计 视频舆情监测软件免费版
  • 西宁建设网站百度产品有哪些
  • 做彩票网站需要学习什么大搜推广
  • 与企业网站做接口一站式营销推广
  • 推动品牌建设的网站ip软件点击百度竞价推广
  • 蛋糕店微网站引擎优化是什么工作
  • 高明网站建设公司关键词歌词任然
  • 网站会员管理便民信息微信平台推广
  • 公司的网站续费网络推广网站有哪些
  • 做网站的女生多么百度应用app下载
  • 手机qq邮箱发布了wordpress重庆seo的薪酬水平
  • 做网站什么语言合肥做网站哪家好
  • 幕墙配件在那个网站做推广好软文广告300字范文
  • 怎样用wordpress搭建网站国内打开google网页的方法
  • 堵博网站建设腾讯第三季度营收448亿元
  • 石家庄网站建设seo青岛seo代理计费