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权威指南》

相关推荐
易水寒陈1 小时前
单片机实现的工厂模式
单片机
别了,李亚普诺夫2 小时前
PCB设计大师篇笔记
笔记·嵌入式硬件·学习
点灯小铭3 小时前
双积分AD转换电路
单片机·毕业设计·课程设计·期末大作业
youcans_3 小时前
【动手学STM32G4】(8)STM32G431之 DAC进阶
stm32·单片机·嵌入式硬件·dma·定时器
hqwest3 小时前
码上通QT实战14--监控页面06-串口设备数据初始化-
单片机·rs232·serialport·波特率·串口设备·虚拟串口设备软件·qt项目配置文件
qq_397562313 小时前
BMI088 , 传感器的使用经验 . ( SPI 模式 )
单片机
切糕师学AI3 小时前
ARM 应用程序状态寄存器APSR的整数状态(NZCV)位
arm开发·寄存器·apsr
点灯小铭4 小时前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
TEC_INO4 小时前
STM32_9:I2C_DHT11_OLED项目
stm32·单片机·嵌入式硬件
__万波__4 小时前
STM32基于HAL 库开发包创建新的工程-编译-烧录
stm32·单片机·嵌入式硬件