ARM内部寄存器

1、RISC指令集

(1)ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing),它所用的指令比较简单,有如下特点:

  • 对内存只有读、写指令。
  • 对于数据的运算是在CPU内部实现
  • 使用RISC指令的CPU复杂度小一点,易于设计

(2)对于下图所示的乘法运算a = a * b,在RISC中要使用4条汇编指令:

  • 读内存a;
  • 读内存b;
  • 计算a*b;
  • 把结果写入内存。

(3)在CPU内部,用什么来保存a、b、a*b ?答案是CPU内部寄存器。

2、CPU的内部寄存器

(1)无论cortex-M3/M4,还是cortex-A7,CPU内部都有R0、R1、......、R15寄存器。

(2)R0-R15寄存器中,R0~R12一般为通用寄存器;对于R13、R14、R15,还另有用途:

  • R13:别名SP(Stack Pointer),栈指针。
  • R14:别名LR(Link Register),用来保存返回地址。例如函数调用、中断处理完成的返回地址。
  • R15:别名PC(Program Counter),程序计数器,表示当前指令地址,写入新值即可跳转。

(3)乘法运算a = a + b,对应的4条汇编指令的理解:

复制代码
LDR R0, [a]     ; 将内存地址a中的数据加载到寄存器R0
LDR R1, [b]     ; 将内存地址b中的数据加载到寄存器R1
ADD R0, R0, R1  ; 将R0与R1的值相加,结果存回R0
STR R0, [a]     ; 将R0的值存回内存地址a,更新变量a的值

(4)寄存器的含义:寄存器有CPU内部自己的寄存器,有设备上的寄存器,它们是完全不同的。

3、M3/M4 CPU内部寄存器

4、A7CPU内部寄存器

(1)寄存器

(2)A7支持多种启动方式,不同启动方式对应寄存器如下。

5、程序状态寄存器

5.1、cortex-M3/M4

(1)对于cortex-M3/M4来说,xPSR实际上对应3个寄存器,这3个寄存器的如下所示:

  • APSR:Application PSR,应用PSR
  • IPSR:Interrupt PSR,中断PSR
  • EPSR:Exectution PSR,执行PSR

(2)程序状态急促请你中的位域描述:

(3)这3个寄存器,可以单独访问:

  • MRS表示:Moveto Register from Status,就是把Status寄存器的值移动到通用寄存器
  • MRS R0, APSR ;读APSR
  • MRS R0, IPSR ;读IPSR
  • MSR APSR, R0 ;写APSR

(4)这3个寄存器,也可以一次性访问:

  • MRS R0, PSR ; 读组合程序状态
  • MSR PSR, R0 ; 写组合程序状态

5.2、cortex-A7

(1)对于cortex-A7,叫做Current Program Status Register,即当前程序状态寄存器。

参考资料:

《ARM Cortex-M3与Cortex-M4权威指南》

相关推荐
Jumbuck_105 小时前
从零实现《三角洲行动》手游自动跑刀脚本:ADB 直控 + OpenCV 视觉识别 + 固定点位搜刮)三角洲自动跑刀教程
嵌入式硬件·yolo·目标检测·自动化·自动驾驶·三角洲·自动跑刀
txh05075 小时前
从零开始学习FOC
单片机·嵌入式硬件·学习
2601_961194025 小时前
考研政治历年真题及解析pdf
stm32·单片机·嵌入式硬件·物联网·考研·pdf
今日待办5 小时前
STM32H747I-DISCO 开发指南【数字麦克风使用】
stm32·单片机·嵌入式硬件
世微 如初5 小时前
【方案】AP5127摩托车灯驱动设计:12-100V输入,2.5A恒流
单片机·嵌入式硬件
嵌入式ZYXC5 小时前
第7章:原理图设计与阅读——从“能看懂”到“会画”的关键一跃
stm32·单片机·嵌入式硬件·物联网
Topplyz6 小时前
保险丝选型
单片机·嵌入式硬件·pcb·电源·layout
破晓单片机6 小时前
007、STM32单片机分享:宠物喂食器系统
stm32·单片机·嵌入式硬件
JNX_SEMI6 小时前
OC5800N降压DC-DC转换器:宽压输入、内置100V MOS、输出可达2A以上
单片机·嵌入式硬件
嵌入式小站6 小时前
STM32 零基础可移植教程 16:ADC + DMA 连续采样,为什么不用 CPU 一直搬数据
stm32·单片机·嵌入式硬件