zoukankan      html  css  js  c++  java
  • ARM 寄存器 和 工作模式了解

    一. ARM 工作模式

     

    1.   ARM7,ARM9,ARM11,处理器有 7 种工作模式;Cortex-A 多了一个监视模式(Monitor

    2.  用户模式:非特权模式,大部分任务执行在这种模式,它运行在操作系统的用户态,没有权限操作其他硬件资源,只能执行处理自己的数据,也不能切换到其他模式下

    3.  快速中断模式 : 当一个高优先级(fast) 中断产生时将会进入这种模式

    4.  普通中断模式 : 当一个低优先级(normal) 中断产生时将会进入这种模式

    5.  管理模式(SVC) :当复位或软中断指令执行时将会进入这种模式

    6.  中止模式 : 当存取异常时将会进入这种模式 Undef : 当执行未定义指令时会进入这种模式

    7.  系统模式 : 使用和User模式相同寄存器集的特权模式 Cortex-A 增加的工作模式:

    8.  监控模式 : 是为了安全而扩展出的用于执行安全监控代码的模式

     

    二. ARM 指令集

     ARM指令集:一条指令占 32 位 ,4字节,影响 PC 中的地址

    Thumb指令集: 一条指令占 16 位 ,2字节 

    三. ARM 寄存器

    Cortex-A 寄存器:标三角的是相应模式状态下的独立的寄存器;其他事通用寄存器,也就是各个模式下可以共同使用的寄存器;Cortex-A 共40个寄存器, 共23 个特殊功能寄存器,17 个通用寄存器。

      R13 :栈指针寄存器  SP 保存栈内存空间的首地址值

      R14:链接寄存器  LR   保存函数返回地址值

      R15:当前程序计数器  PC  保存当前取址指令的地址值

      CPSR:当前程序状态寄存器

      SPSR:保存程序状态寄存器,用来保存 CPSR 值

      PC 寄存器指向的地址值:

         对于ARM 状态(arm指令集), PC 寄存器的低2位没有定义 PC[1,0] ,arm指令占 4字节,也就是PC 中地址是4的倍数

        对于Thumb状态(Thumb指令集),PC寄存器的低1位没有定义 PC[0],Thumb占 2字节,也就是PC中地址是 2 的倍数, PC 中的地址就是每条执行指令的地址

     CPSR 寄存器中各bit 对应的功能

  • 相关阅读:
    JS 提交表单
    [ZJOI 2010]base 基站选址
    [ZJOI 2013]丽洁体
    [Codeforces 176B]Word Cut
    [SDOI 2013]方程
    [AtCoder agc021D]Reversed LCS
    [BZOJ 4361]isn
    [SDOI 2011]黑白棋
    [ZJOI 2010]Perm 排列计数
    [Codeforces 297E]Mystic Carvings
  • 原文地址:https://www.cnblogs.com/electronic/p/11027006.html
Copyright © 2011-2022 走看看