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

成都专业网站搭建公司公司网站设计哪家好

成都专业网站搭建公司,公司网站设计哪家好,做网站是属于哪个专业,公司公众网站微信平台建设方案堆栈是一种后进先出(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.mnyf.cn/news/15345.html

相关文章:

  • java做的网站源码长沙关键词排名首页
  • 鞍山网站设计百度惠生活怎么做推广
  • 网站建设维护公司排名bt磁力链好用的引擎
  • 做网站需要知道什么软件seo推广网站
  • 温州哪里有网站建设最新热搜新闻
  • 网页制作网站源码文章优化软件
  • 房产中介网站模板企业网络推广计划
  • 宁波网络建站公司有哪些有什么功能
  • 网站功能设计讲解网红推广一般怎么收费
  • 政府网站建设背景说明外链推广软件
  • 移动端网站建站视频教程网站网络推广服务
  • 定制购物平台石家庄seo关键词排名
  • wordpress检查php版本号seo技术好的培训机构
  • 日本做家纺的公司网站关键词调词平台
  • 网站开发 平台建设国际新闻稿件
  • 网站建设公司的未来南宁seo外包服务
  • 福田沙头网站建设网址推广
  • 发布网站的两种方法宁波seo公司排名
  • 常州网站建设报价优化关键词方法
  • 时尚网站建设网络营销推广合作
  • 网站怎么做备案长沙建站优化
  • 中国建设银行个人登录网站实时热榜
  • 顺义广州网站建设凡科网怎么建网站
  • 网站的总体方案营销推广软件
  • 做网站美工的前途怎么样百度人工服务在线咨询
  • 大理装饰公司做网站镇江网站制作公司
  • 做网站的标性竞价排名机制
  • 淮安市建设工程初级职称申报网站线上职业技能培训平台
  • 佛山顺德网站建设长春建站程序
  • 哪个视频网站做视频最赚钱廊坊网站排名优化公司哪家好