zoukankan      html  css  js  c++  java
  • ARM处理器寄存器

    参考:ARM Architecture Reference Manual39

     

     

     

    1ARM处理器寄存器纵览

           clip_image002

    ARM微处理器共有3732位寄存器,其中31个为通用寄存器(R13R13_svc不是同一个寄存器),6个为状态寄存器。但是这些寄存器不能被同时访问,具体哪些寄存器是可以访问的,取决ARM处理器的工作状态及具体的运行模式。但在任何时候,通用寄存器R14R0、程序计数器PC、一个状态寄存器都是可访问的。

     

    clip_image004

    1.1通用寄存器

     

        R0R15

        R13_svcR14_svc

        R13_abtR14_abt

        R13_undR14_und

        R13_irqR14_irq

        R8_fiq R14_fiq

     

    ²  不分组通用寄存器

    R0-R7是不分组寄存器。这意味着在所有处理器模式下,访问的都是同一个物理寄存器。不分组寄存器没有被系统用于特别的用途,任何可采用通用寄存器的应用场合不分组通用寄存器都可以使用未分组寄存器。

     

    ²  分组通用寄存器

     

    v分组寄存器R8-R12

           1. FIQ模式分组寄存器R8-R12

       2. FIQ以外的分组寄存器R8-R12

     

    v分组寄存器R13R14

           1. 寄存器R13通常用做堆栈指针SP

       2. 寄存器R14用作子程序链接寄存器LinkRegisterLR),也称为LR,指向函数的返回地址

      

    ²  程序计数器

    寄存器R15被用作程序计数器,也称为PC 。其值等于当前正在执行的指令的地址+8(因为在取址和执行之间多了一个译码程序计数器的阶段)

     

     

    1.2、 状态寄存器

    Ø  CPSR

    Ø  SPSR_svc

    Ø  SPSR_abt

    Ø  SPSR_und

    Ø  SPSR_irq

    Ø  SPSR_fiq

     

          ARM所有工作模式下都可以访问程序状态寄存器CPSRCPSR包含条件码标志、中断禁止位、当前处理器模式以及其它状态和控制信息。

       CPSR每种异常模式下都有一个对应的物理寄存器——程序状态保存寄存器SPSR。当异常出现时,SPSR用于保存CPSR的值,以便异常返回后恢复异常发状态寄存器生时的工作状态。

     

    clip_image006

     

    clip_image008

     

    Program status registers重点要掌握的几个位

    clip_image010

    clip_image012

    clip_image014

    clip_image016

     

     

     

     

     

  • 相关阅读:
    阿里Canal中间件的初步搭建和使用
    深入理解Java String类
    深入理解Java中的String
    Docker 容器数据卷(挂载)
    在docker容器下利用数据卷实现在删除了mysql容器或者镜像的情况下恢复数据
    EFK(Elasticsearch+Filebeat+Kibana)收集容器日志
    Docker 容器日志占用空间过大解决办法
    四种软件架构,看看你属于哪个层次
    Kubernetes 如何只授予某一 Namespace 的访问权限
    Docker实验Docker的网络配置
  • 原文地址:https://www.cnblogs.com/LoTGu/p/5925073.html
Copyright © 2011-2022 走看看