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 LRMOV PC,LR
  • 嵌套调用时必须把 LR 压栈

6. R15(PC,Program Counter)

  • 程序计数器
  • 下一条要执行的指令地址
  • ARM 经典特性:读取 PC 时值 = 当前指令地址 + 8
  • 直接写 PC 就实现跳转
相关推荐
努力小周1 小时前
STM32智能安防系统
c语言·stm32·单片机·嵌入式硬件·物联网·计算机网络·pcb工艺
华科大胡子3 小时前
在STM32上跑通TinyML
stm32·单片机·嵌入式硬件
iCxhust4 小时前
C#进程管理程序
开发语言·汇编·stm32·单片机·c#·微机原理
zhaoshuzhaoshu6 小时前
嵌入式开发之IIC接口详解-STM32
嵌入式硬件·软件工程
SUNNYSPY0017 小时前
AO3402-ASEMI开关电源专用AO3402
单片机
iCxhust7 小时前
MTK8088单板机制作(一)时钟电路
汇编·单片机·嵌入式硬件·微机原理·8088单板机
2601_958352907 小时前
双麦 DSP 音频拾音模块 A-68:多场景远场语音交互的声学解决方案
嵌入式硬件·音视频·降噪·回音消除·音频处理模块
崇山峻岭之间7 小时前
单片机直流有刷电机速度环PID控制实验
单片机·嵌入式硬件
xiangw@GZ8 小时前
智能锁浮空系统指纹头金属环ESD防护技术分析
单片机·嵌入式硬件
ACP广源盛139246256738 小时前
IX7008 PCIe 交换芯片@ACP#RTX Spark 经济型 8 口扩展芯片(对比 ASM1806)
大数据·人工智能·分布式·嵌入式硬件·gpt·spark·电脑