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 小时前
单片机开发工具篇:(十四)配置输出 .map 文件及其本地路径
c语言·单片机·嵌入式硬件
笨笨饿10 小时前
140_AI新手村MCP与Skills是干嘛的
开发语言·人工智能·python·stm32·单片机·嵌入式硬件·物联网
hahaha601611 小时前
色彩恒常性概述
人工智能·嵌入式硬件·数码相机·计算机视觉
我叫洋洋11 小时前
Cadence CIS 元器件库合并实战:3000+ 焊盘、156 个符号零冲突并入自有库
数据库·单片机·嵌入式硬件·oracle·电路
hahaha601613 小时前
Shades-of-Gray (SoG) 算法--白平衡算法
人工智能·嵌入式硬件·算法·计算机视觉
ebiobiz13 小时前
极海 APM32 使用 Nimmake 编译指南
c++·python·单片机·嵌入式硬件·mcu
小神兵14 小时前
对电压源与电流源的的简单理解
单片机·嵌入式硬件·物联网
comyccccc15 小时前
三极管与MOS管工作原理全解析学习笔记
单片机·嵌入式硬件
FPGA小徐16 小时前
运放电路:负载必须接地时,如何做电流采样(浮地负载 vs 接地负载)
单片机·嵌入式硬件
木白CPP16 小时前
USB(一): USB 概述&&介绍
linux·网络·嵌入式硬件