ARM架构之寄存器

CPU进行数据运算和逻辑运算

寄存器

概念

寄存器是处理器内部的存储器,没有地址

作用

一般用于暂时存放参与运算的数据和运算结果

分类

包括通用寄存器、专用寄存器、控制寄存器

C语言中四种存储类型的详解

一、auto存储类型

用auto存储类型说明的变量都是局部于某个程序范围内的,只能在某个程序范围内使用,通常存在于函数体内或函数中的复合语句里。

在函数体内,auto声明的变量是局部变量。存放到栈空间中,当函数执行完毕,栈空间就会被系统自动释放。

二、register存储类型

register称为寄存器型,使用register关键词说明的变量,主要目的是想将所说明的变量放入CPU的寄存器存储空间中,这样可以加快程序的运行速度。

但CPU的寄存器数量也是有限的,当没有申请到寄存器来存储此变量时,该变量则自动转为auto类型!!!(声明为寄存器存储类型的变量,不能够取地址!)

ARM中寄存器不能识别浮点型,不能取地址,因为没有

三、static存储类型

在函数体内说明的static 存储类型的变量也是一种局部变量,与auto最大不同点是:static存储类型的变量在内存中是以固定地址存放的,而不是以堆栈方式存放的;只要整个程序还在继续运行,静态变量就不会随着说明它的程序段的结束而消失,当下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用结束的数值。

当static修饰一个全局变量时,它的作用则是限定了此全局变量不能被外部文件所引用,限定了该全局变量的作用域。

当static修饰一个局部函数时,同样的作用也是限定了本代码段的作用域仅限于本文件,不得被外部文件引用!!!

四、extern存储类型

extern声明的存储类型被称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。
一共40个寄存器

专用寄存器(对应CPU工作原理图)

R15(PC,Program Counter)

程序计数器,用于存储当前取址指令的地址
R14(LR,Link Register)

链接寄存器,一般有以下两种用途:

> 执行跳转指令(BL/BLX)时,LR会自动保存跳转指令下一条指令的地址

程序需要返回时将LR的值复制到PC即可实现(main函数中的一个func()函数,执行结束后返回主函数)属于子程序调用,主动进行的

> 产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下

一条指令的地址,异常处理结束后将LR的值复制到PC可实现程序返回(接收网卡发的数据,进行拆包)属于被动进行的
R13(SP,Stack Pointer)

栈指针,用于存储当前模式下的栈顶地址

栈的本质就是一段内存,存储一些临时数据

C语言数据存储区主要分为栈、堆、静态存储区三个

1.程序中的栈

栈在程序中用于维护函数调用上下文,且函数中的参数和局部变量存储在栈上。可以这么认为,没了栈的话,程序几乎无法运行,这里的栈和数据结构里的栈是一个概念,但表现形式不一样。栈遵循后进先出原则,栈是一种后进先出的行为。

2.程序中的堆

概念:堆是程序中一块预留的内存空间,可由程序自由使用,堆中被程序申请使用的内存在被主动释放前将一直有效。C语言程序中通过库函数的调用获得堆空间

  • 头文件:malloc.h
  • malloc :以字节的方式动态申请堆空间
  • free :将堆空间归还给系统

3.程序中的静态存储区

  • 静态存储区随着程序的运行而分配空间
  • 静态存储区的生命周期直到程序运行结束
  • 在程序的编译期静态存储区的大小就已经确定
  • 静态存储区主要用于保存全局变量和静态局部变量
  • 静态存储区的信息最终会保存到可执行程序中

CPSR****寄存器

控制CPU的状态,显示数据运算的状态

CPSR(Current Program Status Register),当前程序状态寄存器

相关推荐
小码哥哥25 分钟前
四大企业AI知识库技术架构深度对比:从设计哲学到实现差异
人工智能·架构
武汉万象奥科2 小时前
AGV导航控制器方案 | 基于HD-RK3576系列核心板的算控融合一体化平台
arm开发·嵌入式硬件·arm核心板·单板机
zlinear数据采集卡4 小时前
从“脏信号”到“纳伏级纯净”:硬核拆解DABL7606的多级抗混叠滤波与24位过采样算法
arm开发·科技·嵌入式硬件·fpga开发·开源
2601_960567967 小时前
电商套图批处理架构的性能分析——逐图生成与流水线模式的工程对比
架构
老刘说AI8 小时前
SGLang 深度优化: Radix 缓存与复杂任务的极致吞吐
人工智能·神经网络·机器学习·缓存·架构·sglang
Georgeviewer8 小时前
实体门店SaaS系统适配困境深度解析:通用模板架构为何无法支撑线下商业落地
架构
●VON8 小时前
鸿蒙 PC Markdown 编辑器通信架构:受限 ArkTS-JavaScript Bridge
华为·架构·编辑器·harmonyos·鸿蒙
chaoxiaomai8 小时前
电商套图批处理架构的性能分析——逐图生成与流水线模式的工程对比
架构
沸速存储9 小时前
内存技术的未来:DDR6、CAMM2与CXL将如何改变计算架构
科技·嵌入式硬件·架构·计算机外设·电脑
人间凡尔赛9 小时前
K8s 十年之变:从 Cloud Native 到 AI Native,2026 年后端架构的范式革命
后端·云原生·架构