mcu中cpu通用和特殊寄存器

ARM32 一共有 16 个通用寄存器:R0~R15。它们是 CPU 用来存数据、地址、临时变量。

1. R0~R3

  • 函数调用时传参用
  • 函数返回值放在 R0
  • 临时计算、临时数据
  • 调用子函数时,这些寄存器不保证被保存(调用者负责保存)

2. R4~R11

  • 真正的局部变量寄存器
  • 调用子函数时必须被保存和恢复(被调用者负责)
  • 适合放循环变量、长期使用的变量

3. R12(IP / Intra-Procedure Call Scratch Register)

  • 不用管,因为mcu的使用场景,R12特殊功能并未启用,当通用寄存器使用。

4. R13(SP,Stack Pointer)

  • 栈指针
  • 永远指向当前栈顶
  • 压栈、出栈、函数栈帧都靠它
  • 不能随便乱改
  • 链接寄存器
  • 执行 BL(带链接跳转)时,返回地址自动存入 LR
  • 函数返回靠 BX LR 或 MOV PC,LR
  • 嵌套调用时必须把 LR 压栈

6. R15(PC,Program Counter)

  • 程序计数器
  • 存下一条要执行的指令地址
  • ARM 经典特性:读取 PC 时值 = 当前指令地址 + 8
  • 直接写 PC 就实现跳转
相关推荐
路上有只喵8 小时前
认识元器件 · 单片机(MCU/MPU/SOC) · 实战篇 11
单片机·嵌入式硬件
不昀8 小时前
开关电源电流互感器怎么选:匝比、采样电阻与复位的计算笔记
单片机·嵌入式硬件·电子元器件
小李不想当小白11 小时前
WDG看门狗(STM32标准库学习笔记)
笔记·stm32·单片机·嵌入式硬件·学习·嵌入式
youcans_13 小时前
【嵌入式软件AI编程】(3)面向 AI 协同开发的 STM32 硬件信息标准化
人工智能·stm32·嵌入式硬件·ai编程
智者知已应修善业15 小时前
【51单片机实现从下到上,从上到下,从中间到两边,两边到中间】2024-10-23
c语言·经验分享·笔记·单片机·嵌入式硬件·51单片机
辰哥单片机设计16 小时前
STM32智能药盒丨2027单片机新项目
stm32·单片机·嵌入式硬件
LCG米1 天前
STM32硬件CRC外设实测:多项式固定陷阱、CRC-32校验不匹配根因与软件查表法耗时对比落地
stm32·单片机·嵌入式硬件
La Pulga1 天前
【FreeRTOS源码学习笔记】任务切换
单片机·mcu·学习·嵌入式·freertos·实时操作系统
女神下凡1 天前
芯参谋(85):Linux_PPI_NAND_驱动开发指南
linux·运维·arm开发·驱动开发·单片机·嵌入式硬件·设计规范