• 3、ARM寄存器组织


    ARM寄存器组织

    1、寄存器

    概念

    • 寄存器是处理器内部的存储器,没有地址

    作用

    • 一般用于暂时存放参与运算的数据和运算的结果

    分类

    • 包括通用寄存器、专用寄存器、控制寄存器
      在这里插入图片描述

    2、ARM寄存器

    在这里插入图片描述
    注:

    • 在某个特定的模式下,只能使用当前模式下的寄存器。一个模式下的特有寄存器在其他模式下不可以使用

    专用寄存器

    R15(PC,Program Counter)

    • 程序计数器,用于存储当前取址指令的地址

    R14(LR,Link Register)

    • 链接寄存器,一般有一下两种用途
      • 1、执行跳转指令(BL和BLX)时,LR会自动保存跳转指令下一条指令的地址。程序需要返回时,将LR的值复制到PC即可实现。
      • 2、产生异常时,对应异常模式下的LR会自动保存被异常打断的指令的下一条指令的地址,异常处理结束后将LR的值复制到PC即可实现。

    R13(SP,Stack Pointer)

    • 栈指针,用于存储当前模式下的栈顶指针

    CPSR寄存器

    CPSR(Current Program Status Register)

    • 当前程序状态寄存器
      在这里插入图片描述

    CPSR寄存器分为四个域

    • 1、[31:28]为条件域,用F表示
    • 2、[24:27]为状态域,用S表示
    • 3、[15:8]为预留域 ,用X表示
    • 4、[8:0]为控制域 ,用C表示

    Bit[4:0]

    • [10000]:User
    • [10001]:FIQ
    • [10010]:IRQ
    • [10011]:Supervisor (SVC)
    • [10111]:Abort(ABT)
    • [11011]:Undef(UND)
    • [11111]:System(SYS
    • [10110]:Monitor

    Bit[5]

    • [0]:ARM状态
    • [1]:Thumb状态

    Bit[6]

    • [0]:开启FIQ
    • [1]:禁止FIQ

    Bit[7]

    • [0]:开启IRQ
    • [1]:禁止IRQ

    Bit[28]:V

    • 1、当运算器中进行加法运算且产生符号位进位时,该位自动置1,否则为0
    • 2、当运算器中进行减法运算且产生符号位借位时,该位自动置0,否则为1

    Bit[29]:C

    • 当运算器中进行加法运算且产生进位时,该位自动置1,否则为0
    • 当运算器中进行减法运算且产生借位时,该位自动置0,否则为1

    Bit[30]:Z

    • 当运算器中产生了0的结果该位自动置1,否则为0

    Bit[31]:N

    • 当运算器中产生了负数的结果,该位自动置1,否则为0
  • 相关阅读:
    经验之谈:内存泄露的原因以及分析
    基于css变量轻松实现网站的主题切换功能
    【计算机网络】【《计算机网络·自顶向下方法(原书第7版)》笔记】第三章:运输层
    关于数据权限的设计
    【网页设计】期末大作业html+css(音乐网站)
    榛子云短信验证平台与springboot集成的短信验证
    JVM——8.内存分配方式
    数据监测全过程——采集、清洗、分析
    亚马逊短视频制作需要注意什么?
    恶意代码防范技术笔记(八)
  • 原文地址:https://blog.csdn.net/qq_53402930/article/details/133001804