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

     

     

     

     

     

  • 相关阅读:
    Android学习之Android studio TraceView和lint工具的使用具体解释
    Caffe + Ubuntu 15.04 + CUDA 7.0 安装以及配置
    web安全之渗透测试
    屏蔽alert弹框下面一层的操作
    org.hibernate.NonUniqueObjectException: a different object with the same identifier value was already associated with the session:
    java.lang.NoClassDefFoundError
    20 道 Spring Boot 面试题
    java节假日api--关于节假日想到的
    CSVWriter生成文件时writer.writeRecord();方法保存的文件末尾多一个空行
    git思维导图
  • 原文地址:https://www.cnblogs.com/LoTGu/p/5925073.html
Copyright © 2011-2022 走看看