我们从2011年坚守至今,只想做存粹的技术论坛,记录你的技术足迹,有空就回来看看。  由于网站在外面,点击附件后可能要20秒才弹出下载,请耐心等待,勿重复点击

 找回密码
 立即注册
搜索
查看: 909|回复: 7

[技术文章] ARM寄存器介绍

[复制链接]

该用户从未签到

53

主题

35

回帖

0

积分

二级逆天

积分
0

社区居民终身成就奖

QQ
发表于 2020-10-28 08:31:54 | 显示全部楼层 |阅读模式
ARM寄存器介绍





版权

ARM处理器包含多少寄存器?每种模式下又有那些寄存器?这些寄存器的作用又是什么?带着这些问题我们来学习ARM寄存器吧!相信看完这篇文章后你会有所收获。
ARM处理器共有37个寄存器。
它包含31个通用寄存器和6个状态寄存器。

=======================================================================================
Usr         System         Supervisor      Abort         Undefined         IRQ           FIQ
----------------------------------------------------------------------------------------------------------------
R0          R0             R0              R0            R0                R0            R0
R1          R1             R1              R1            R1                R1            R1
R2          R2             R2              R2            R2                R2            R2         
R3          R3             R3              R3            R3                R3            R3
R4          R4             R4              R4            R4                R4            R4
R5          R5             R5              R5            R5                R5            R5
R6          R6             R6              R6            R6                R6            R6
R7          R7             R7              R7            R7                R7            R7
R8          R8             R8              R8            R8                R8            R8_fiq
R9          R9             R9              R9            R9                R9            R9_fiq
R10        R10          R10            R10         R10              R10          R10_fiq
R11        R11          R11            R11         R11              R11          R11_fiq
R12        R12          R12            R12         R12              R12          R12_fiq
R13        R13          R13_svc   R13_abt  R13_und    R13_irq   R13_fiq
R14        R14          R14_svc   R14_abt  R14_und    R14_irq   R14_fiq
PC          PC            PC             PC            PC                PC            PC
CPSR    CPSR        CPSR        CPSR      CPSR           CPSR      CPSR
                           SPSR_svc        SPSR_abt      SPSR_und          SPSR_irq      SPSR_fiq
=======================================================================================
1.通用寄存器的分类:
a.未备份寄存器,包括R0-R7
    对每个未备份寄存器来说,在所有的模式下都是指同一个物理寄存器(例如:Usr下的R0与FIQ下的R0是同一个寄存器)。在异常程序中断造成模式切换时,由于不同模式使用的是相同的物理寄存器。这可能导致数据遭到破坏。未备份寄存器没有被系统作为别的用途,任何场合均可采用未备份寄存器。
b.备份寄存器,包括R8-R14
    对于备份寄存器R8-R12来说,除FIQ模式下其它模式均使用相同的物理寄存器。在FIQ模式下R8_fiq,R9_fiq,
R10_fiq,R11_fiq,R12_fiq。它有自己的物理寄存器。
    对于R13和R14寄存器每种模式都有自己的物理寄存器(System与Usr的寄存器相同)当异常中断发生时,系统使用相应模式下的物理寄存器,从而可以避免数据遭到破坏。
   R13也称为SP堆栈指针。
   R14也称为LR寄存器
c.程序计数器,PC
   PC寄存器存储指令地址,由于ARM采用流水机制执行指令,故PC寄存器总是存储下一条指令的地址。
   由于ARM是按照字对齐故PC被读取后的值的bit[1:0]总是0b00(thumb的bit[0]是0b0)。

2.程序状态寄存器
程序状态寄存器包含当前程序状态寄存器和备份状态寄存器。
a.CPSR(程序状态寄存器)
CPSR在任何处理器模式下都可以被访问。其结构如下:

  31 30 29 28  ---   7   6   -   4   3   2   1   0
  N  Z  C  V         I   F       M4  M3  M2  M1  M0

N(Negative)、Z(Zero)、C(Carry)以及V(oVerflow)称为条件标志位。ARM指令根据CPSR的条件标志位来选择地执行。
CPSR条件标志位
=======================================================================================
条件标志位                   含义
----------------------------------------------------------------------------------------------------------------
N                            N=1 表示运算结果为负数,N=0 表示运算结果为正数。               
Z                            Z=1 表示运算结果为0, Z=0 表示运算结果为非零。
C                            C=1 表示运算结果产生了进位。
V                            V=1 运算结果的符号位发生了溢出。
Q                            在ARMv5 E系列版本中Q=1 表示DSP指令溢出。
                             在ARMv5以前的版本中没有Q标志位。
=======================================================================================
以下指令会影响CPSR的条件标志位
(1)比较指令,如: CMP、CMN、TEQ、TST等。
(2)当一些算术逻辑运算的目标寄存器不是PC时,这些指令会影响CPSR的条件标志位。
(3)MSR与MRS指令可以对CPSR/SPSR进行操作。
(4)LDM指令可以将SPSR复制到CPSR中。

CPSR的控制位
=======================================================================================
控制位                        含义
----------------------------------------------------------------------------------------------------------------
I                             I=1 禁用IRO中断
F                             F=1 禁用FIQ中断
T                             ARMv4以上T版本T=0 执行ARM指令,T=1执行Thumb指令。
                              ARMv5以上非T版本T=0 执行ARM指令,T=1表示下一条指令产生未定义指令中断。M[4:0]                        控制处理器模式
                              0b10000      User
                              0b10001      FIQ
                              0b10010      IRQ
                              0b10011      Supervisor
                              0b10111      Abort
                              0b11011      Undefined
                              0b11111      System      
=======================================================================================
b.SPSR(备份状态寄存器)
SPSR的结构与CPSR的结构相同,SPSR是用来备份CPSR的。
回复

使用道具 举报

  • TA的每日心情
    郁闷
    前天 10:37
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    4

    主题

    1464

    回帖

    1756

    积分

    二级逆天

    积分
    1756

    终身成就奖

    发表于 2020-10-28 08:45:31 | 显示全部楼层
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6219

    回帖

    8727

    积分

    二级逆天

    积分
    8727

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-10-28 08:49:29 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    3 天前
  • 签到天数: 30 天

    [LV.5]常住居民I

    6

    主题

    1万

    回帖

    2万

    积分

    三级逆天

    积分
    20477

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-10-28 08:51:34 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-5-29 20:33
  • 签到天数: 1 天

    [LV.1]初来乍到

    48

    主题

    6493

    回帖

    7755

    积分

    二级逆天

    积分
    7755

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-10-28 09:00:14 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2024-6-21 08:56
  • 签到天数: 2 天

    [LV.1]初来乍到

    52

    主题

    2980

    回帖

    1278

    积分

    1元学习Allegro(1期)

    积分
    1278

    社区居民终身成就奖特殊贡献奖优秀斑竹奖

    发表于 2020-10-28 09:14:45 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-6-14 16:03
  • 签到天数: 16 天

    [LV.4]偶尔看看III

    0

    主题

    1万

    回帖

    7618

    积分

    二级逆天

    积分
    7618

    终身成就奖特殊贡献奖原创先锋奖优秀斑竹奖

    QQ
    发表于 2020-10-29 15:39:37 | 显示全部楼层
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    前天 10:37
  • 签到天数: 22 天

    [LV.4]偶尔看看III

    4

    主题

    1464

    回帖

    1756

    积分

    二级逆天

    积分
    1756

    终身成就奖

    发表于 2020-11-10 08:57:53 | 显示全部楼层
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Copyright ©2011-2024 NTpcb.com All Right Reserved.  Powered by Discuz! (NTpcb)

    本站信息均由会员发表,不代表NTpcb立场,如侵犯了您的权利请发帖投诉

    平平安安
    TOP
    快速回复 返回顶部 返回列表