• 特殊功能寄存器


    一.特殊的寄存器

    1 R13寄存器

    R13寄存器 --别名--> SP ------> the Stack Pointer : 栈指针寄存器

    作用:栈指针寄存器中存放的是栈空间的地址。此栈用来压栈保存现场。

    2 R14寄存器

    R14寄存器 --别名--> LR -----> the Linking Register : 链接寄存器

    作用:保存的是返回地址。

    3 R15寄存器

    R15寄存器 --别名--> PC -----> the Program Counter : 程序计数寄存器

    作用:存放的时当前要取指指令的地址。

    4 cpsr寄存器

    cpsr寄存器 -----> Currented Program Statues Register : 当前程序状态寄存器。

    cpsr寄存器作用:存放的时当前程序的运行的状态,比如工作模式

    N[31] : 指令的执行结果为负数时,N位被自动置1,否则清0.

    Z[30] : 指令的执行结果为零时,Z位被自动置1,否则清0.

    C[29] :

    ​ 加法:低32位向高32位产生进位(向上溢出),C位被自动置1,否则清0.

    ​ 减法:低32位向高32位产生借位(向下溢出),C位被自动清0,否则置1.

    V[28] : 符号位发生变化,V位被自动置1,否则清0.

    I[7] : IRQ中断屏蔽位

    ​ I = 0 : 不屏蔽IRQ的中断

    ​ I = 1 : 屏蔽IRQ的中断

    F[6] : FIQ中断屏蔽位

    ​ F = 0 : 不屏蔽FIQ的中断

    ​ F = 1 : 屏蔽FIQ的中断

    T[5] : 状态位

    ​ T = 0 : ARM状态,执行ARM指令,1条ARM指令占4字节的空间。

    ​ T = 1 : Thumb状态,执行Thumb指令,1条Thumb指令占2字节的空间。

    ​ 在Cortex-M核中主要使用的就是Thumb指令。

    M[4:0] : 模式位

    ​ 10000 User mode;

    ​ 10001 FIQ mode;

    ​ 10011 SVC mode;

    ​ 10111 Abort mode;

    ​ 11011 Undfined mode;

    ​ 11111 System mode;

    ​ 10110 Monitor mode;

    ​ 10010 IRQ mode

    5 spsr寄存器

    spsr寄存器 -----> Saved Program Statues Register : 保存程序状态寄存器。

    spsr寄存器作用:保存当前程序的运行状态的急促请你,就是对cpsr寄存器进行备份。

  • 相关阅读:
    【SVN】使用TortoiseGit删除Git分支
    locust性能压测工具
    petalinux_zynq7 驱动DAC以及ADC模块之五:nodejs+vue3实现web网页波形显示
    c++ - 第11节 - stack和queue类
    对象与成员函数指针 function+bind
    QT基础入门【QSS】QT伪状态类型和实例
    进程与线程
    如何使用remix验证已部署的合约(以Goerli测试网为例)
    你绝对不知道的JMeter中如何实现接口之间的关联?
    基于 SpringBoot + Vue 的在线课堂前后端分离项目
  • 原文地址:https://blog.csdn.net/a2998658795/article/details/126687790