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

企业网站 手机网站 app 微网站百度官网认证多少钱

企业网站 手机网站 app 微网站,百度官网认证多少钱,网站建设公司的服务器,如何建立一个网站主页【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 接上篇 blog 【OS】【Nuttx】【启动】栈溢…

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除

背景
接上篇 blog
【OS】【Nuttx】【启动】栈溢出保护:caller-saved 和 callee-saved
简单分析了下 r10 为什么能保存栈底地址,下面继续来分析下 caller-saved 和 callee-saved

caller-saved 和 callee-saved

首先是 cortex-m 的寄存器结构
在这里插入图片描述
用户手册《Arm Cortex-M4 Processor Technical Reference Manual》里虽然只提到了 R13(SP),R14(LR),R15(PC)作为特殊用途寄存器,R0-R12 没有特殊用途,作为通用寄存器使用,但实际上,在使用过程中,R0-R12 之间还是有显著差别的,这种差别来源于比如函数调用等过程中,R0-R12 寄存器之间的一些使用约定

之前 blog 【OS】【Nuttx】【启动】栈溢出保护:caller-saved 和 callee-saved 提到

  • r0–r3:作为临时寄存器,约定用来将参数值传递给被调用函数,或者从被调用函数中返回结果值
  • r4-r12:约定用来保存函数内的局部变量或者长期使用的中间值

首先从这种约定的使用方式,又衍生出两个概念:易失性寄存器(volatile registers)和非易失性寄存器(non-volatile registers),下面来看下这两个概念

(非)易失性存储器?

在讲易失性寄存器(volatile registers)和非易失性寄存器(non-volatile registers)之前,先要区分开易失性存储器(volatile memory)和非易失性存储器(non-volatile memory)

通常讨论易失性存储器(volatile memory)和非易失性存储器(non-volatile memory)时,主要是讲掉电是否丢失,这取决于存储器的介质

  • 非易失性存储器(non-volatile memory):比如 flash,rom,掉电后数据不会丢失
  • 易失性存储器(volatile memory):比如 ram,掉电后数据会丢失

对于存储器来说,这是硬件介质上导致的差别,而对于寄存器里的易失性概念,更多的是寄存器上的使用约定,比如在 arm 的 AAPCS(ARM Architecture Procedure Call Standard) 或 x86 的调用规范中,所以两个词的意思和语境完全不同,需要理解这一点

volatile register

【易失性寄存器】:这些寄存器的内容在函数调用过程中可能被破坏,有几个点是反复强调过的

  • 如果在一个函数里用了这些寄存器,并保存了某些值,然后调用了另一个子函数(比如 bl sub_function),那么等子函数执行完回来时,这些易失性寄存器的值可能就没了
  • 如果想保留这些易失性寄存器的值,就需要把它们保存到内存的栈上
  • 可以把这些寄存器看作是临时草稿纸,随时可能会被别人擦掉内容
  • 在 arm 上,常见的 volatile 寄存器,比如 r0–r3,可以用来传入参数和传出返回值等临时数据

示意图如下

在这里插入图片描述

non-volatile register

【非易失性寄存器】:这些寄存器的内容在函数调用过程中必须保持不变,这里需要正确理解保持不变的含义

  • 保持不变不是说在函数调用时,子程序不能使用这些寄存器,而是说如果子程序使用了这些寄存器并修改了它们的值,那子程序就需要负责在函数返回前,把这些寄存器恢复成原来的值
  • 可以把这些寄存器看作是私人笔记本,别人借走后,不能随便改里面的内容(如果改了,最后还笔记本的时候,要恢复原状,让人看不出用过的痕迹)
  • 在 arm 上,常见的 non-volatile 寄存器,比如 r4–r8,r10-r11,可以用来保存函数内的局部变量或者长期使用的中间值

具体过程看下面这个示意图

在这里插入图片描述
先分析到这,后面继续

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

相关文章:

  • 网站引导动画怎么做的网络营销文案策划
  • 地方房地产网站新闻头条最新消息
  • 网站建设的知识点有哪些外包公司和劳务派遣的区别
  • 做外卖系统哪家网站做的好哈尔滨百度公司地址
  • 服装网站建设优点和缺点百度搜索引擎优化的方法
  • 贝壳企业网站管理系统个人网页制作完整教程
  • 三网合一网站建设报价网站如何提交百度收录
  • 深圳高端网站建设网页设计seo网站推广与优化方案
  • 网站建设必须要其他后台吗seo网站排名优化工具
  • 商城网站平台怎么做竞价推广托管服务
  • wordpress 订阅google seo是什么啊
  • 网站后台 js框架湘潭网站设计外包服务
  • 怎么建网站链接网络广告电话
  • 怎么建设一个自己的电商网站淮北seo
  • 图书建设网站国外搜索引擎网站
  • 太原网站建设案例搜狗站长
  • 公司需要做网站吗seo网站关键词排名优化公司
  • 网站开发用工工程师百度信息流推广教程
  • 新冠为什么莫名消失了乐陵seo优化
  • 福建网站开发速成班怎么推广引流客户
  • 临沂在线上网站建设友缘在线官网
  • 服装网站目标榜单优化
  • 坡头网站建设公司专业做网站的公司
  • 做网站一定要有公司吗象山关键词seo排名
  • 最好的网站建设公司有哪些怎样做引流推广
  • 传奇私服网站做ssl网站排名软件优化
  • 新手如何制作网站怎么自己做一个网页
  • 保定模板做网站百度推广怎么操作流程
  • 企业门户网站在信息系统架构中属于哪个层次b站推广引流最佳方法
  • 做网站都有什么成本公司域名查询官网