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

石家庄网站搭建公司网站内容优化关键词布局

石家庄网站搭建公司,网站内容优化关键词布局,网页框架代码怎么做,wordpress 图像小工具堆栈是一种后进先出(LIFO)的队列,用于存储函数调用时的临时数据和现场数据。堆栈指针sp(寄存器2)是一个普通的RISC-V寄存器,按照惯例,指向堆栈的顶部。堆栈从高地址向低地址增长,即当…

堆栈是一种后进先出(LIFO)的队列,用于存储函数调用时的临时数据和现场数据。堆栈指针sp(寄存器2)是一个普通的RISC-V寄存器,按照惯例,指向堆栈的顶部。堆栈从高地址向低地址增长,即当需要更多的临时空间时,堆栈指针sp减小。

函数调用时,如果函数参数和局部变量很多,寄存器放不下,需要开辟堆栈空间存储。中断发生时,堆栈空间用于存放当前执行程序的现场数据(下一条指令地址、各种缓存数据),以便中断结束后恢复现场。开辟和释放堆栈空间的方法是调整堆栈指针sp的值。

函数调用时,为了避免函数修改除了a0之外的其他寄存器的值,造成主程序的寄存器内容被破坏,需要在函数执行前将需要修改的寄存器的值保存到堆栈上,然后在函数返回前将它们从堆栈上恢复。具体的步骤是:

  • 在堆栈上分配空间来存储一个或多个寄存器的值
  • 将寄存器的值存储到堆栈上
  • 执行函数使用寄存器
  • 从堆栈上恢复寄存器的原始值
  • 释放堆栈空间

堆栈通常颠倒存储在存储器中,使得堆栈顶部实际上是最低地址,并且堆栈向下朝向较低存储器地址增长。 这称为降序堆栈。 一些架构还允许向上的堆栈向更高的内存地址增长。 堆栈指针(sp)通常指向堆栈上的最顶层元素; 这称为全栈。 某些体系结构(例如 ARM)还允许空堆栈,其中 sp 指向堆栈顶部之外的一个字。 RISC-V架构定义了函数传递变量和使用堆栈的标准方式,以便不同编译器开发的库可以互操作。 它指定了一个完整的降序堆栈。

 RISC-V指定的降序堆栈如下图所示: 

 

 

 

上图代码示例展示了一个改进的diffofsums函数,它在修改t0,t1和s3寄存器之前将它们保存到堆栈上,并在返回前将它们从堆栈上恢复。这样可以避免破坏调用者的寄存器内容。

下图展示了在调用代码示例中的diffofsums函数之前,期间和之后的堆栈情况。堆栈一开始在0xBEF0F0FC。diffofsums通过将堆栈指针sp减少12来为三个字分配堆栈空间。然后它将t0,t1和s3寄存器中的当前值存储在新分配的空间中。它执行函数的其余部分,改变这三个寄存器的值。在函数结束时,diffofsums从堆栈上恢复这些寄存器的值,释放它的堆栈空间,并返回。当函数返回时,a0保存了结果,但没有其他副作用:t0,t1,s3和sp与函数调用前具有相同的值。

 

一个函数为自己分配的堆栈空间称为它的堆栈帧(stack frame)。diffofsums的堆栈帧有三个字深。模块化原则告诉我们,每个函数只应访问自己的堆栈帧,而不是属于其他函数的帧。

http://www.khdw.cn/news/25432.html

相关文章:

  • 烽火台网站陕西企业网站建设
  • wordpress默认上传路径太原百度快速优化排名
  • 合肥中小企业网站制作每天4元代发广告
  • 服务器放网站吗西安做网站
  • 展示型网站建设价格百度贴吧官网首页
  • 机械类外贸网站建设郑州模板网站建设
  • 线上咨询预约网站建设方案谷歌浏览器下载官方正版
  • 摄影作品网站app十大排名优化网站的软件下载
  • 南昌大型网站制作怎么做网站推广多少钱
  • 海外广告投放渠道营销池州网站seo
  • 在哪家网站做推广好网站设计报价方案
  • 如何做网站推广方案在线网站分析工具
  • 怎么做公众号教程免费百度seo引流
  • 长沙哪里可以做网站每日财经最新消息
  • 四川监狱网站建设软文300字介绍商品
  • 陕西省建设厅执业资格注册中心网站报名系统网络游戏推广员的真实经历
  • 如果做好网站社区的建设app推广员怎么做
  • 网站中的表单怎么做长沙网站搭建优化
  • wordpress怎么设计首页seo文章生成器
  • 拉萨建设局网站电商网站平台搭建
  • 镇江网站设计建设营销网店推广的软文
  • 做红包网站是犯法的吗厦门seo服务
  • 百度建设网站seo是哪个英文的缩写
  • 做网站赣州网店推广的重要性
  • 网站模板免费吗品牌营销策略分析
  • 网站上传图片大小限制百度竞价推广方案
  • 阿里巴巴网站是怎么做的91永久海外地域网名
  • 做网站做什么赚钱广告外链平台
  • 建站快车优势百度信息流广告推广
  • 阿里云ecs网站建设网站搜索优化找哪家